Reference server implementation in Go of tus: the open protocol for resumable file uploads
Go to file
Adam Jensen 6662f43d01
s3Store: Concurrently write upload parts to S3 while reading from client (#402)
* Allow empty metadata values

* Make tests less fragile by allowing loose call ordering

* Add s3ChunkProducer

* Integrate s3ChunkProducer to support chunk buffering

* Remove completed chunk files inline to reduce disk space usage

* Add tests for chunk producer

* docs: Use value from Host header to forward to tusd

* Use int64 for MaxBufferedParts field

* Default to 20 buffered parts

* Rename s3ChunkProducer -> s3PartProducer

* Document s3PartProducer struct

* Clarify misleading comment

* Revert "Remove completed chunk files inline to reduce disk space usage"

This reverts commit b72a4d43d6.

* Remove redundant seek

This is already being done in s3PartProducer.

* Clean up any remaining files in the channel when we return

* Make putPart* functions responsible for cleaning up temp files

* handler: Add tests for empty metadata pairs

* Factor out cleanUpTempFile func

* Add test to ensure that temporary files get cleaned up

Co-authored-by: Jens Steinhauser <jens.steinhauser@gmail.com>
Co-authored-by: Marius <marius@transloadit.com>
2020-07-29 15:24:46 +02:00
.github Better improve 2020-04-15 03:20:27 +01:00
cmd/tusd cli: Fix help description for "hooks-enabled-events" (#399) 2020-06-19 17:32:34 +02:00
docs cli: Fix help description for "hooks-enabled-events" (#399) 2020-06-19 17:32:34 +02:00
examples docs: Use value from Host header to forward to tusd 2020-06-24 13:35:35 +02:00
infra Update APIs 2020-04-15 03:23:42 +01:00
internal/uid core: Move packages into pkg/ and internal/ folders 2019-06-11 18:23:20 +02:00
pkg s3Store: Concurrently write upload parts to S3 while reading from client (#402) 2020-07-29 15:24:46 +02:00
scripts ci: Move from Travis to GitHub Actions (#308) 2019-10-01 17:58:22 +02:00
.gitignore Remove frey references 2018-03-14 12:27:48 +01:00
Dockerfile misc: Change cloud provider for master.tus.io (#300) 2019-08-13 09:50:18 +01:00
LICENSE.txt Update year 2017-01-19 21:20:12 +01:00
README.md docs: Add CI badge for GitHub Actions 2019-10-16 14:22:31 +02:00
go.mod cli: Fix build time error of gRPC hooks 2020-04-06 13:46:58 +02:00
go.sum cli: Fix build time error of gRPC hooks 2020-04-06 13:46:58 +02:00

README.md

tusd

Tus logo

tus is a protocol based on HTTP for resumable file uploads. Resumable means that an upload can be interrupted at any moment and can be resumed without re-uploading the previous data again. An interruption may happen willingly, if the user wants to pause, or by accident in case of an network issue or server outage.

tusd is the official reference implementation of the tus resumable upload protocol. The protocol specifies a flexible method to upload files to remote servers using HTTP. The special feature is the ability to pause and resume uploads at any moment allowing to continue seamlessly after e.g. network interruptions.

It is capable of accepting uploads with arbitrary sizes and storing them locally on disk, on Google Cloud Storage or on AWS S3 (or any other S3-compatible storage system). Due to its modularization and extensibility, support for nearly any other cloud provider could easily be added to tusd.

Protocol version: 1.0.0

This branch contains tusd v1. If you are looking for the previous major release, after which breaking changes have been introduced, please look at the 0.14.0 tag.

Documentation

Build status

Build Status

License

This project is licensed under the MIT license, see LICENSE.txt.