Creating a system that uploads, processes and delivers files is one of the most common tasks in the development of any web project. It’s also among the most frustrating ones.
It’s messy, to say the least: you have to create a custom upload/storage system, with access rights, backups, cloud image processing, and above all - security. Even after that, you’re limited to a few sources you can upload from, often having to load files first onto a computer, and only then to your website or app.
Uploadcare is a service that allows web app development without struggling file uploads. It includes CDN for faster delivery, on-the-fly image operations and stellar upload widget and dialog.
Uploadcare sets convenient file uploading dialog for any website or mobile app. Service comes with a custom widget that is meant to replace your usual <input type="file"> controls enabling choosing files directly from Facebook, Instagram, Vkontakte, Dropbox or Google Drive. Here is the latest version in action:
Service provides users virtually infinite storage, backed by Amazon S3 or Selectel containers. You also can also store files on your own storage. Set up backups to your own bucket for extra security and flexibility.
Your server tells Uploadcare which files we should store. As your server has received file_ids from a form, it tells Uploadcare to store the files it’s going to use.
It’s done using our API:
PUT /files/:file_id/storage/ HTTP/1.1 Host: api.uploadcare.com Authorization: Uploadcare.Simple demopublickey:demoprivatekey
Such request can be sent using any programming language, or even cURL.
On-the-fly image processing to fit any image to user website or mobile app saves time on image editing.
Delivery through CDN
Uploadcare CDN provides API for processing uploaded files. Operations are invoked via path of HTTP GET requests. All URLs should begin with the file uuid:
You can add operations, appending them to the URL, separating each with /-/. Operations consist of the name and arguments, separated by slashes (/). It looks like this:
Here, two operations are invoked: resize with argument 200x and rotate with argument 90.
You can "pipe" several operations one by one. They will be executed in specified order. You can use any operation several times.
Finally you can add any chunk without slash to the end of URL. It can be useful if your content editing system checks link's "extension" or if you want to show nicer link to user.
In short, Uploadcare allows uploading files from many sources (Dropbox, Google Drive, Evernote, Facebook, Instagram, etc.) via very sexy widget. It also provides CDN for faster file delivery with in-the-fly image operations (like cropping and resize).