Skip to main content

Send file in for aiohttp.web (http server for asyncio)

Project description

aiohttp-send

Pypi codecov

Send file in aiohttp

Install

Python 3.6 only now (function arguments type hint does not work in 3.5)

pip install aiohttp aiohttp-send

Options

  • max_age Browser cache max-age in milliseconds. (defaults to 0)
  • immutable Tell the browser the resource is immutable and can be cached indefinitely. (defaults to False)
  • hidden Allow transfer of hidden files. (defaults to True)
  • root Root directory to restrict file access.
  • index Name of the index file to serve automatically when visiting the root location. (defaults to None)
  • gzip Try to serve the gzipped version of a file automatically when gzip is supported by a client and if the requested file with .gz extension exists. (defaults to False).
  • brotli Try to serve the brotli version of a file automatically when brotli is supported by a client and if the requested file with .br extension exists. (defaults to False).
  • format If not False (defaults to True), format the path to serve static file servers and not require a trailing slash for directories, so that you can do both /directory and /directory/.
  • extensions Try to match extensions from passed array to search for file when no extension is sufficed in URL. First found is served. (defaults to False)

Root path

Note that root is required, defaults to '' and will be resolved, removing the leading / to make the path relative and this path must not contain "..", protecting developers from concatenating user input. If you plan on serving files based on user input supply a root directory from which to serve from.

For example to serve files from ./public:

async def index(request: web.Request):
    return await send(request, request.path, root='./public', format=True)

app.add_routes([
    web.get('/{tail:.*}', index),
])

Example

from aiohttp import web
from aiohttp_send import send

app = web.Application()


async def index(request):
    return await send(request, 'index.html')


app.add_routes([
    web.get('/', index),
])

web.run_app(app, port=8888)

This project comes from koajs/send.

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

aiohttp-send-0.0.8.tar.gz (5.2 kB view hashes)

Uploaded Source

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