A AIOHTTP response class streaming the contents of a directory as a ZIP archive. Thanks to stream-zip, this works without storing the entire ZIP in memory or disk.
Generally, this package is meant to complement the existing aiohttp.web.FileResponse
class which can be used to stream the contents of a single file.
pip install aiohttp-zip-response
from aiohttp import web
from aiohttp_zip_response import ZipResponse
async def handle_zip(request):
return ZipResponse('path/to/directory')
app = web.Application()
app.router.add_get('/zip', handle_zip)
web.run_app(app)
- The
Content-Length
header is not set because the size of the ZIP archive is not known in advance. This means clients such as browsers cannot display a download progress bar. - This package currently doesn't support streaming of symbolic links to directories.