From: Michael Tremer Date: Mon, 7 Jul 2025 17:54:08 +0000 (+0000) Subject: API: Set Content-Type when streaming some response X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=479b802e0f148968840b1177005450b05d64592d;p=pbs.git API: Set Content-Type when streaming some response Signed-off-by: Michael Tremer --- diff --git a/src/api/debuginfo.py b/src/api/debuginfo.py index 708027cc..a4c12664 100644 --- a/src/api/debuginfo.py +++ b/src/api/debuginfo.py @@ -37,6 +37,10 @@ async def get(buildid: str) -> fastapi.responses.StreamingResponse: if not file: raise fastapi.HTTPException(404, "Could not find debuginfo in %s" % package) + headers = { + # XXX This should set Content-Length + "Content-Type" : file.mimetype or "application/octet-stream", + } + # Stream the payload - return fastapi.responses.StreamingResponse( - file.stream(), media_type="application/octet-stream") + return fastapi.responses.StreamingResponse(file.stream(), headers=headers) diff --git a/src/api/packages.py b/src/api/packages.py index a55c2082..95d409d3 100644 --- a/src/api/packages.py +++ b/src/api/packages.py @@ -112,6 +112,7 @@ async def download_file( # XXX Check if this is actually downloadable headers = { + "Content-Type" : file.mimetype or "application/octet-stream", "Content-Disposition" : "attachment; filename=%s" % file.basename, # XXX StreamingResponse does not allow us to set a Content-Length header @@ -123,9 +124,7 @@ async def download_file( "X-Robots-Tag" : "noindex", } - return fastapi.responses.StreamingResponse( - file.stream(), media_type=file.mimetype, headers=headers, - ) + return fastapi.responses.StreamingResponse(file.stream(), headers=headers) # Add everything to the APIv1