Skip to content

A AIOHTTP response class streaming the contents of a directory as a ZIP archive - without storing the entire ZIP in memory or disk

License

Notifications You must be signed in to change notification settings

DoctorJohn/aiohttp-zip-response

Repository files navigation

AIOHTTP ZIP Response

Versions PyPI Codecov License

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.

Installation

pip install aiohttp-zip-response

Usage

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)

Caveats

  • 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.

About

A AIOHTTP response class streaming the contents of a directory as a ZIP archive - without storing the entire ZIP in memory or disk

Topics

Resources

License

Stars

Watchers

Forks

Languages