tusd

API

Resumable file upload server for the open tus protocol

Price
Free, open source
Access
None built in; auth through hooks

About

tusd is the official reference server for tus, an open HTTP protocol for resumable file uploads. Uploads of any size pause and resume after network errors and land on local disk, S3 or an S3-compatible store, Google Cloud Storage or Azure Blob Storage. Hooks handle auth and processing.

What you can do with it

  • Accept large file uploads that resume after a dropped connection
  • Write uploaded files to local disk, S3-compatible storage, GCS or Azure
  • Validate, authorize and post-process uploads through HTTP or gRPC hooks

Get started

  1. Download the tusd binary or run the tusproject/tusd Docker image
  2. Start tusd with an upload directory or an S3 bucket
  3. Point tus-js-client or Uppy at the /files/ endpoint

Example

tusd -upload-dir=./data   # or: tusd -s3-bucket=my-bucket -s3-endpoint https://s3.example.com

// in the browser, with tus-js-client
const upload = new tus.Upload(file, {
  endpoint: "http://localhost:8080/files/",
  onError: (error) => console.log("Failed because: " + error),
  onSuccess: () => console.log("Uploaded to " + upload.url),
})
upload.start()

Details

Hosting
Self-hosted
Available in
Worldwide
Official SDKs
JavaScript/TypeScript, Java, Python, Swift
MCP server
None
Works with
S3

Tasks

Alternatives

Other tools for the same tasks.

Last checked on .