Why Transloadit outperforms S3 for file uploads
When it comes to handling file uploads, there are plenty of options to choose from, but one of the more popular choices on the market is Amazon S3. There are, however, also a number of reasons why Transloadit could be better suited for your file-uploading needs.
One of our customers recently asked us about this topic, so we figured we'd turn the answer into an informative blog post for a wider audience.
TLDR: Transloadit offers a better end-user experience, can be more cost-effective, and is faster than S3.
User experience
Firstly, Transloadit offers a better end-user experience thanks to our spectacular Tus protocol for resumable file uploads. Tus allows for the upload of small chunks of a file, which proves helpful if the upload is interrupted or the user's connection is lost. In this worst case scenario, the upload can be resumed from the last chunk that was succssfully uploaded.
While resumable uploads can also be implemented using S3, this involves slicing a file into multiple parts that are uploaded individually. Therefore, each part's upload can then be retried in the event of a network interruption. What follows is a delicate balancing act between upload performance and minimization of data retransmission in the case of an upload failure.
As you can see, this balancing act is no longer a consideration when using Tus. The entire file is uploaded as a whole, without any kind of slicing. The result is a smooth user experience, no matter the network circumstances.
Cost-effectiveness
Another advantage of using Transloadit is the cost-effectiveness. Assuming you want Transloadit to transform or filter files in some way, using S3 would require payment at multiple instances. You pay to store the file, then pay to get it out, pay for the transformation, and pay once more to get the results back into S3.
Applying this same use case to Transloadit, there is only one instance of payment. You pay for the file transformation – and that's it. This can save you a significant amount of money, especially if you are dealing with large numbers of files.
Speed
Transloadit also offers faster uploads thanks to the use of servers that support 2 GB/s right off the bat, which is significantly faster than the few Mb/s that S3 starts you out with (although the speed gradually builds up as the upload progresses).
Let's take the benchmark below as an example. It was performed by uploading a 10 MB and 1024 MB file using different methods. With Tus, the files were transferred to a server in the same network using tusd. With S3, the file was uploaded from an AWS EC2 instance to a bucket in the same region. With XHR, the file was uploaded using a XMLHttpRequest to a Node.js server.
The upload speed was then calculated by dividing the file size by the upload duration.
Tus offers an upload throughput of 4.75 Gb/s, compared to the 947 Mb/s offered by S3. The impact is even more drastic when compared to a more traditional XHR upload, which reached speeds of 423 Mb/s. These speed gains also translate to smaller file transfers, too – with Tus being over 3 times faster than S3 and XHR in our benchmark above, for a 10 MB file upload.
Additionally, Transloadit offers lower latencies because our servers are globally distributed and always close to the end user. An S3 bucket exists in a single region, so a user from a different region would experience latency on each request. While there are workarounds to provide the same functionality, it means yet more time that you are not spending on your core product.
Finally, Transloadit is quicker to set up and has a lower development cost. With S3, the process of integrating with a processing backend, creating IAM roles and signing requests can be cumbersome. With Transloadit, all these nice-to-haves come pre-packaged!
Listen to your engineers
All this being said, Transloadit does not make its revenue by handling uploads, so ultimately it's all the same to us. This is also why we released Uppy and its S3 plugin to the public. We encourage our customers to use the tools they are comfortable with.
In the end, deciding which technologies to use comes down to trust and comfort. No one ever got fired for picking AWS! Letting engineers' preferences inform the decision about what technology to use, results in better products. Pushing technology that they don't like may instead achieve the opposite.
At Transloadit, we're always happy to answer any questions you have and offer our own guidance on engineering the best file processing technology for your platform and your team's requirements. Feel free to reach out to us and discuss!