tus.io protocol implementation for aiohttp.web applications
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aiohttp_tus-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17594e9399b0e77864e1397de9e3ce830b4abd383a14fb661c4a5ca32de823fe |
|
MD5 | 53936547524db9cee334d9e90c79409d |
|
BLAKE2b-256 | 2cf1e5328cfb0184487bc675d69e7d74f3bce4de94f1d64a3d69a845cdf2f000 |