mirror of
https://github.com/protomaps/PMTiles.git
synced 2026-02-04 19:01:08 +00:00
Moved CORS headers up to include non-200 responses
This commit is contained in:
@@ -60,12 +60,17 @@ def lambda_handler(event, context):
|
|||||||
pmtiles_path(os.environ.get("PMTILES_PATH"), name), offset, length
|
pmtiles_path(os.environ.get("PMTILES_PATH"), name), offset, length
|
||||||
)
|
)
|
||||||
|
|
||||||
|
headers = {}
|
||||||
|
|
||||||
|
if "CORS" in os.environ:
|
||||||
|
headers["Access-Control-Allow-Origin"] = os.environ.get("CORS")
|
||||||
|
|
||||||
reader = Reader(get_bytes)
|
reader = Reader(get_bytes)
|
||||||
try:
|
try:
|
||||||
minzoom = int(reader.header().metadata["minzoom"])
|
minzoom = int(reader.header().metadata["minzoom"])
|
||||||
maxzoom = int(reader.header().metadata["maxzoom"])
|
maxzoom = int(reader.header().metadata["maxzoom"])
|
||||||
if tile.z < minzoom or tile.z > maxzoom:
|
if tile.z < minzoom or tile.z > maxzoom:
|
||||||
return {"statusCode": 404, "body": "Tile not found"}
|
return {"statusCode": 404, "headers": headers, "body": "Tile not found"}
|
||||||
|
|
||||||
tile_data = reader.get(tile.z, tile.x, tile.y)
|
tile_data = reader.get(tile.z, tile.x, tile.y)
|
||||||
if not tile_data:
|
if not tile_data:
|
||||||
@@ -73,16 +78,11 @@ def lambda_handler(event, context):
|
|||||||
except ClientError as e:
|
except ClientError as e:
|
||||||
error_code = e.response["Error"]["Code"]
|
error_code = e.response["Error"]["Code"]
|
||||||
if error_code == "AccessDenied":
|
if error_code == "AccessDenied":
|
||||||
return {"statusCode": 404, "body": "Archive not found"}
|
return {"statusCode": 404, "headers": headers, "body": "Archive not found"}
|
||||||
else:
|
else:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
headers = {
|
headers["Content-Type"] = "application/protobuf"
|
||||||
"Content-Type": "application/protobuf",
|
|
||||||
}
|
|
||||||
|
|
||||||
if "CORS" in os.environ:
|
|
||||||
headers["Access-Control-Allow-Origin"] = os.environ.get("CORS")
|
|
||||||
|
|
||||||
if reader.header().metadata.get("compression") == "gzip":
|
if reader.header().metadata.get("compression") == "gzip":
|
||||||
if is_api_gateway:
|
if is_api_gateway:
|
||||||
|
|||||||
Reference in New Issue
Block a user