aiohttp-tus¶
tus.io server implementation for aiohttp.web applications.
For uploading large files, please consider using aiotus (Python 3.7+) library instead.
Works on Python 3.6+
Works with aiohttp 3.5+
BSD licensed
Latest documentation on Read The Docs
Source, issues, and pull requests on GitHub
Quickstart¶
Code belows shows how to enable tus-compatible uploads on /uploads
URL for
aiohttp.web
application. After upload, files will be available at ../uploads
directory.
from pathlib import Path
from aiohttp import web
from aiohttp_tus import setup_tus
app = setup_tus(
web.Application(),
upload_url="/uploads",
upload_path=Path(__file__).parent.parent / "uploads",
)
Chunk Size¶
Please, make sure to configure client_max_size
for aiohttp.web
Application and
supply proper chunkSize
for Uppy.io or other tus.io client.
CORS Headers¶
To setup CORS headers you need to use cors_middleware from aiohttp-middlewares package. aiohttp-cors library not supported cause of aio-libs/aiohttp-cors#241 issue.
Reverse proxy and HTTPS¶
When aiohttp
application deployed under the reverse proxy (such as nginx) with HTTPS
support, it is needed to use https_middleware
from aiohttp-middlewares package to ensure that web.Request
instance has proper
schema.
Examples¶
examples/ directory
contains several examples, which illustrate how to use aiohttp-tus
with some tus.io
clients, such as tus.py and
Uppy.io.
License¶
aiohttp-tus is licensed under the terms of BSD License.