Choosing the uploader you need
Versatile, reliable uploading is at the heart of Uppy. It has many configurable plugins to suit your needs. In this guide we will explain the different plugins, their strategies, and when to use them based on use cases.
Use cases
I want worry-free, plug-and-play uploads with Transloadit services
Transloadit’s strength is versatility. By doing video, audio, images, documents,
and more, you only need one vendor for all your file processing
needs. The @uppy/transloadit
plugin directly
uploads to Transloadit so you only have to worry about creating a
template. It uses
Tus under the hood so you don’t have to
sacrifice reliable, resumable uploads for convenience.
You should use @uppy/transloadit
if you don’t want to host your own
server, (optionally) need file processing, and store it in the service (such as
S3 or GCS) of your liking. All with minimal effort.
I want reliable, resumable uploads
Tus is a new open protocol for resumable uploads built on HTTP. This means accidentally closing your tab or losing connection let’s you continue, for instance, your 10GB upload instead of starting all over.
Tus supports any language, any platform, and any network. It requires a client and server integration to work. You can checkout the client and server implementations to find the server in your preferred language. You can store files on the Tus server itself, but you can also use service integrations (such as S3) to store files externally.
If you want reliable, resumable uploads: use @uppy/tus
to connect to your
Tus server in a few lines of code.
I want to upload to AWS S3 (or S3-compatible storage) directly
When you prefer a client-to-storage over a client-to-server-to-storage (such as Transloadit or Tus) setup. This may in some cases be preferable, for instance, to reduce costs or the complexity of running a server and load balancer with Tus.
Uppy has two plugins to make this happen @uppy/aws-s3
and
@uppy/aws-s3-multipart
, but we are planning to merge the two plugins in
the next major. You should use @uppy/aws-s3
with the new
shouldUseMultipart
option.
You can also save files in S3 with the /s3/store
robot while still
using the powers of Transloadit services.
I want to send regular HTTP uploads to my own server
@uppy/xhr-upload
handles classic HTML multipart form uploads as well as
uploads using the HTTP PUT
method.