frimeet-api-nlp / app /shared /security /request_limits.py
AlleksDev's picture
Deploy Frimeet API NLP
45b1179
Raw
History Blame Contribute Delete
882 Bytes
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)