Spaces:
Running
Running
| from starlette.middleware.base import BaseHTTPMiddleware | |
| from starlette.requests import Request | |
| from starlette.responses import JSONResponse, Response | |
| class RequestSizeLimitMiddleware(BaseHTTPMiddleware): | |
| def __init__(self, app, max_body_size: int) -> None: | |
| super().__init__(app) | |
| self._max_body_size = max_body_size | |
| async def dispatch(self, request: Request, call_next) -> Response: | |
| content_length = request.headers.get("content-length") | |
| if content_length and int(content_length) > self._max_body_size: | |
| return JSONResponse( | |
| status_code=413, | |
| content={ | |
| "error": { | |
| "code": "request_too_large", | |
| "message": "Request body is too large.", | |
| } | |
| }, | |
| ) | |
| return await call_next(request) | |