cloudflare worker: gzip compression support

This commit is contained in:
Brandon Liu
2022-07-20 13:07:16 +08:00
parent e0402ded7f
commit bde4a2f75c

View File

@@ -98,6 +98,7 @@ export default {
let source = new TempSource(); let source = new TempSource();
let p = new PMTiles(source); let p = new PMTiles(source);
let metadata = await p.metadata();
let entry = await p.getZxy(+match[2], +match[3], +match[4]); let entry = await p.getZxy(+match[2], +match[3], +match[4]);
if (entry) { if (entry) {
let tile = await env.BUCKET.get(match![1] + ".pmtiles", { let tile = await env.BUCKET.get(match![1] + ".pmtiles", {
@@ -108,9 +109,15 @@ export default {
headers.set("Access-Control-Allow-Origin", "*"); headers.set("Access-Control-Allow-Origin", "*");
headers.set("Content-Type", "application/x-protobuf"); headers.set("Content-Type", "application/x-protobuf");
headers.set("X-Pmap-Subrequests", subrequests.toString()); headers.set("X-Pmap-Subrequests", subrequests.toString());
if (metadata.compression === "gzip") {
headers.set("Content-Encoding", "gzip");
}
return new Response((tile as R2ObjectBody).body, { return new Response((tile as R2ObjectBody).body, {
headers: headers, headers: headers,
}); encodeBody: "manual",
} as any);
} }
} }
return new Response("Not Found"); return new Response("Not Found");