You are launching a service, where your users need to upload their files to your app or web app. Your userbase is global. You are currently supporting only a handful of sources to pick files from. Also, it is observed that your users are leaving because file upload takes too long or fails due to a variety of issues. Filestack comes to your rescue.
But what is Filestack?
Filestack is a developer service that allows app developers to build apps which can connect to several sources and also upload the files reliably. It solves 2 problems:
- Making uploads reliable and faster
- Enabling users to upload files from several sources (25+)
The Filestack team has used an interesting model to make the uploads faster. It is a two-step process. The process uses an S3 bucket as an intermediate hop. S3 is a file storage solution by AWS, which has a presence across the globe. Using this network, Filestack uploads the user-provided file to the nearest S3 bucket. This turns out to be faster due to the elimination of network latency. As soon as the upload is completed, it returns URL to the application and application can start processing the file as per the need. In the background, the file from Filestack S3 bucket is moved to cloud storage specified by the app. The URL is updated to point to new location and app can continue to use that URL for rest of the lifecycle. So, even if it includes additional hop, it turns out to be faster from a user perspective.
Filestack not only solves above mentioned two problems, but it also provides several additional functionalities for image files.
- Image transformation such as adding borders, flipping the image, applying filters, image rotation
- Resizing of images – on the fly
- Image cropping
You can check out the live examples here.
It also provides some advanced features based on ML (Machine Learning)
- Object recognition
- Object detection
- OCR (Optical Character Recognition)
- Copyright detection
Alternatives to Filestack:
Obviously, you can build your own connectors for various sources, but probably you would end up spending more time to implement all the functionality that Filestack is already providing. There have been some alternatives available: