tusd

module
v2.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2024 License: MIT

README

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 a 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 v2. If you are looking for the previous major release, after which breaking changes have been introduced, please look at the 1.13.0 tag.

Documentation

The entire documentation, including guides on installing, using, and configuring tusd can be found on the website: tus.github.io/tusd.

Build status

release continuous-integration

License

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

Directories

Path Synopsis
cmd
examples
internal
grouped_flags
Package grouped_flags provides a small wrapper around the flag package from Go's standard library to allow grouping flags in the help output.
Package grouped_flags provides a small wrapper around the flag package from Go's standard library to allow grouping flags in the help output.
semaphore
Package semaphore implements a basic semaphore for coordinating and limiting non-exclusive, concurrent access.
Package semaphore implements a basic semaphore for coordinating and limiting non-exclusive, concurrent access.
uid
pkg
filelocker
Package filelocker provide an upload locker based on the local file system.
Package filelocker provide an upload locker based on the local file system.
filestore
Package filestore provide a storage backend based on the local file system.
Package filestore provide a storage backend based on the local file system.
gcsstore
Package gcsstore provides a Google cloud storage based backend.
Package gcsstore provides a Google cloud storage based backend.
handler
Package handler provides ways to accept tus 1.0 calls using HTTP.
Package handler provides ways to accept tus 1.0 calls using HTTP.
hooks
Package hooks allows you to execute hooks based on events emitted from the tusd handler using the callbacks and notification channels.
Package hooks allows you to execute hooks based on events emitted from the tusd handler using the callbacks and notification channels.
hooks/file
Package file provides a file-based hook implementation.
Package file provides a file-based hook implementation.
hooks/grpc
Package grpc implements a gRPC-based hook system.
Package grpc implements a gRPC-based hook system.
hooks/http
Package http implements a HTTP-based hook system.
Package http implements a HTTP-based hook system.
hooks/plugin
Package plugin provides a hook system based on Hashicorp's plugin system.
Package plugin provides a hook system based on Hashicorp's plugin system.
memorylocker
Package memorylocker provides an in-memory locking mechanism.
Package memorylocker provides an in-memory locking mechanism.
prometheuscollector
package prometheuscollector allows to expose metrics for Prometheus.
package prometheuscollector allows to expose metrics for Prometheus.
s3store
Package s3store provides a storage backend using AWS S3 or compatible servers.
Package s3store provides a storage backend using AWS S3 or compatible servers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL