From 6b27c797b3709ebb03a49be6f5ff966480642bc0 Mon Sep 17 00:00:00 2001 From: Jonathan Sick Date: Tue, 12 Sep 2023 16:49:35 -0400 Subject: [PATCH 1/3] Log a warning if the Content-type can't be set --- src/ltdproxy/handlers/external.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ltdproxy/handlers/external.py b/src/ltdproxy/handlers/external.py index 217c13b..98c2459 100644 --- a/src/ltdproxy/handlers/external.py +++ b/src/ltdproxy/handlers/external.py @@ -206,7 +206,10 @@ async def get_s3( logger.debug("is png") response_headers["Content-type"] = "image/png" else: - logger.debug("did not change response content-type") + logger.warning( + "Did not change response content-type", + response_headers=response_headers, + ) logger.debug("response headers", headers=response_headers) From d6022c2d0717ef533173b70c1ae9f17aa6dbdf80 Mon Sep 17 00:00:00 2001 From: Jonathan Sick Date: Tue, 12 Sep 2023 16:49:59 -0400 Subject: [PATCH 2/3] temp: print out the headers from the server stream --- src/ltdproxy/rewrites.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ltdproxy/rewrites.py b/src/ltdproxy/rewrites.py index ea674be..f83b9ef 100644 --- a/src/ltdproxy/rewrites.py +++ b/src/ltdproxy/rewrites.py @@ -85,6 +85,7 @@ async def build_response(self, path: str) -> Optional[StreamingResponse]: stream_headers = stream.headers response_headers = {} + print("Stream headers:", stream_headers) copy_headers = ("Content-Type", "Content-length") for key in copy_headers: if key in stream_headers: From a469f189b1eba6911aaaefee1a49cbe07fbd7690 Mon Sep 17 00:00:00 2001 From: Jonathan Sick Date: Tue, 12 Sep 2023 17:07:33 -0400 Subject: [PATCH 3/3] Populate server response with full set of headers This should allow better caching of static assets. --- src/ltdproxy/rewrites.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/ltdproxy/rewrites.py b/src/ltdproxy/rewrites.py index f83b9ef..83d753a 100644 --- a/src/ltdproxy/rewrites.py +++ b/src/ltdproxy/rewrites.py @@ -84,12 +84,7 @@ async def build_response(self, path: str) -> Optional[StreamingResponse]: return None stream_headers = stream.headers - response_headers = {} - print("Stream headers:", stream_headers) - copy_headers = ("Content-Type", "Content-length") - for key in copy_headers: - if key in stream_headers: - response_headers[key] = stream_headers[key] + response_headers = dict(stream_headers) return StreamingResponse( stream.aiter_raw(),