I try to make custom middleware to validate upload file in http requests.
sample code:
class MyMiddleware(BaseHTTPMiddleware):
...
async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Response:
scope = request.scope
if scope["method"] not in ("POST", "PUT"):
response = await call_next(request)
return response
form = await request.form()
content_type = form[next(iter(form))].content_type
if content_type not in self.file_type:
return _unsupported_media_type
response = await call_next(request)
return response
But, response = await call_next(request)
causes HTTP communication to stall when using above middleware in FastAPI.
like below pic:
enter image description here
Thank you for reading!
This code based on these: