Skip to main content

Middleware to spill large responses over to S3.

Project description

ASGI S3 Response Middleware

Middleware to spill large responses over to S3.


Source Code: https://github.com/developmentseed/asgi-s3-response-middleware


Usage

An ASGI middleware class to automatically push repsonses S3 and instead return a 303 redirect to the object on S3.

This can be useful to avoid hitting limits on the size of API response bodies, such as when working around AWS Lambda's 6MB response limit.

Example

import uuid
import boto3
from fastapi import FastAPI
from asgi_s3_response_middleware import S3ResponseMiddleware

s3_client = boto3.client('s3')

app = FastAPI()

app.add_middleware(
    S3ResponseMiddleware,
    s3_bucket_name='my-example-bucket',
    s3_client=s3_client,
    key_generator=lambda: f"responses/{uuid.uuid4()}",
    size_threshold=2 * 1024**2,  # 2MB
    url_expiry=30,  # 30 seconds
)

Development

Releases

Releases are managed via CICD workflow, as described in the Python Packaging User Guide. To create a new release:

  1. Update the version in src/asgi_s3_response_middleware/__init__.py following appropriate Semantic Versioning convention.
  2. Push a tagged commit to main, with the tag matching the package's new version number.

[!NOTE]
This package makes use of Github's automatically generated release notes. These can be later augmented if one sees fit.

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

asgi-s3-response-middleware-0.0.4.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file asgi-s3-response-middleware-0.0.4.tar.gz.

File metadata

File hashes

Hashes for asgi-s3-response-middleware-0.0.4.tar.gz
Algorithm Hash digest
SHA256 3e61af5c13198b5c8ef1649dd64d3d2be03ddaf450c63a421a202615d4c3e6a4
MD5 02d6d32c35449ba9475188770fab19ef
BLAKE2b-256 ddea29d849f752fa403912f06353438f5e2783eb3e809bf88c84850791eb704d

See more details on using hashes here.

File details

Details for the file asgi_s3_response_middleware-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for asgi_s3_response_middleware-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fa80c16347de06e5b16e3596e3807b78f5d77d204b349e9d930364b79ea3eb54
MD5 9981a817f1dfdc9255d1f36dcfdb74df
BLAKE2b-256 e6bf5f11c39428037e85bb6bd4a5dd7a97bb98f40b2b72d42456837076d5e880

See more details on using hashes here.

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