What is tus?
tus is an open HTTP protocol for resumable file uploads. A client creates or discovers an upload resource, sends bytes from known offsets, and continues from the confirmed offset after an interruption.
How tus works
The tus protocol represents an in-progress upload as an HTTP resource with a server-confirmed byte position. A client appends data only at that position and can query the resource after reconnecting, avoiding retransmission of accepted bytes. Its core behavior is small, while negotiated extensions add creation, checksums, expiration, concatenation, or deferred length. In an ingest workflow, tus separates reliable transfer state from later validation, transcoding, and publication.
Key facts
- 1A client sends a PATCH with
Upload-Offset, and the server accepts it only when that value matches stored state; an offset conflict prevents bytes from being silently appended in the wrong place. - 2HEAD retrieves the server’s current offset so an interrupted client can resume, while the
Tus-Resumableheader identifies the protocol version expected for compatible requests and responses. - 3Optional checksum and expiration extensions address different failure modes: one detects corrupted chunks, while the other tells clients that an unfinished upload resource may cease to exist.
When tus matters
Choose tus for large uploads or unreliable connections where restarting an entire transfer would be costly. Client and server implementations must agree on offsets and extensions or resumption can fail.