]> git.ipfire.org Git - pbs.git/commitdiff
API: Set Content-Type when streaming some response
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 7 Jul 2025 17:54:08 +0000 (17:54 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 7 Jul 2025 17:54:08 +0000 (17:54 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/api/debuginfo.py
src/api/packages.py

index 708027cc35003ed285fa7027c41fe550486a2087..a4c126644d0cf1905cd5a8b8c1043e7b53e14bd2 100644 (file)
@@ -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)
index a55c2082079f3648912ddfe089851eadca0da482..95d409d369685d5202969d5799c4c007563d65d1 100644 (file)
@@ -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