From bde4a2f75c1a2adf58a9222b04cc738c8c6b8966 Mon Sep 17 00:00:00 2001 From: Brandon Liu Date: Wed, 20 Jul 2022 13:07:16 +0800 Subject: [PATCH] cloudflare worker: gzip compression support --- serverless/cloudflare/worker.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/serverless/cloudflare/worker.ts b/serverless/cloudflare/worker.ts index 3eb2b1f..532082c 100644 --- a/serverless/cloudflare/worker.ts +++ b/serverless/cloudflare/worker.ts @@ -98,6 +98,7 @@ export default { let source = new TempSource(); let p = new PMTiles(source); + let metadata = await p.metadata(); let entry = await p.getZxy(+match[2], +match[3], +match[4]); if (entry) { let tile = await env.BUCKET.get(match![1] + ".pmtiles", { @@ -108,9 +109,15 @@ export default { headers.set("Access-Control-Allow-Origin", "*"); headers.set("Content-Type", "application/x-protobuf"); headers.set("X-Pmap-Subrequests", subrequests.toString()); + + if (metadata.compression === "gzip") { + headers.set("Content-Encoding", "gzip"); + } + return new Response((tile as R2ObjectBody).body, { headers: headers, - }); + encodeBody: "manual", + } as any); } } return new Response("Not Found");