Skip to content

Implement the support to TUS extensions #11

@Cadons

Description

@Cadons

Description

The TUS protocol defines various extensions that can be implemented depending on the server capabilities. While implementing or using a TUS client, it’s important to ensure compatibility with the extensions supported by the server, as not all servers may implement all extensions.

The following TUS extensions can vary by server implementation:

  1. Creation Extension:
    -✅ This extension allows the creation of a new upload by sending a POST request to the server. The client should ensure the server supports this before attempting to create a new resource.

  2. Checksum Extension:

    • 📋Provides the ability to verify the integrity of the uploaded file chunks by sending a checksum along with the upload. The client can use this to ensure that the uploaded data is not corrupted, but it requires server-side support for the specific checksum algorithms.
  3. Expiration Extension:

    • 📋This extension is used to communicate the expiration date of the upload. The client needs to handle situations where uploads may expire on the server side and possibly reinitiate uploads if required. Servers may not always support this feature.
  4. Concatenation Extension:

    • 📋This allows for the concatenation of multiple uploads into a single resource. Clients need to check if the server supports concatenation before attempting to combine uploaded chunks.
  5. Termination Extension:

    • ✅Allows the client to terminate an upload if needed. If the server supports this extension, the client can send a DELETE request to free up server-side resources.
  6. Resumable Uploads (Core feature):

    • ✅Though not strictly an extension, the core TUS feature supports resumable uploads, ensuring that the upload process can continue from where it left off. Proper error handling and retry mechanisms should be in place depending on the server response.

Issue

  • The current client implementation has the core features of TUS protocol, it can query the server in order to know which extensions are aviable. You have to add the support of the extensions if user enable it on the client.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Next Features

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions