mirror of
https://github.com/protomaps/PMTiles.git
synced 2026-02-04 10:51:07 +00:00
cloudflare worker: gzip compression support
This commit is contained in:
@@ -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");
|
||||||
|
|||||||
Reference in New Issue
Block a user