Skip to main content

FastAPI extention implementing the tus server

Project description

FastAPI Server for Tus Protocol

A file upload server of the tus resumable upload protocol is implemented on FastAPI framework.

Thanks to tusd, it provides great ideas and a sensible design pattern to implement Tus protocol to support multiple backend storage implementations.

Features:

  • Basic operations to support Core Protocol such as HEAD, POST, PATCH, DELETE
    • Creation With Upload
    • Checksum such as md5
    • Expiration
    • Concatenation
  • File storage
  • S3 storage

Getting started

Import TusRouter to your application,

from fastapi import FastAPI
from fastapi_tusd import TusRouter

app = FastAPI()

# `store_dir`: the folder to store uploaded files
#  `location`: the API endpoint to serve, like `http://127.0.0.1:8000/files` or relative path `files` (TODO: induced from `prefix` in default)
app.include_router(TusRouter(store_dir="./files", location="/files"), prefix="/files")

Then the tus upload endpoints will be served at http://127.0.0.1:8000/files, more information is available at http://127.0.0.1:8000/docs

Examples

There is a simple example with a web file upload client supporting for Tus protocol, thanks to Uppy!

Enter the example/ folder, and run(pip install uvicornif nouvicorn`!)

uvicorn app_tusd:app --reload

Then visit https://127.0.0.1:8000/upload.thml

References

GitHub - tus/tus-resumable-upload-protocol: Open Protocol for Resumable File Uploads

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi-tusd-0.100.2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

fastapi_tusd-0.100.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file fastapi-tusd-0.100.2.tar.gz.

File metadata

  • Download URL: fastapi-tusd-0.100.2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.9

File hashes

Hashes for fastapi-tusd-0.100.2.tar.gz
Algorithm Hash digest
SHA256 126da8d8558a7986db736026556f95c7ee481dc762a48ddb8f7bbe367ceb9947
MD5 0187a25b2cd668e5efc04cc4f95ceb94
BLAKE2b-256 6cee4f39541ae2d2fcbc0fb0655f08b60609f6f82403ad792d5487ee263c7f68

See more details on using hashes here.

File details

Details for the file fastapi_tusd-0.100.2-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_tusd-0.100.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f7f2131dd3875ca6e524fb24a012853613f3ba8b03c545db17794e1930ed9989
MD5 385fa8fb94052d287408252679c0d5fb
BLAKE2b-256 a5388cdbba13ba19b5e45420cc6d43be1d6ec820447197c422853b472a928574

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page