-
-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ETags: mismatch detection and Access-Control-Expose-Headers #24
Comments
After a cursory amount of exploration: Major S3-compatible providers (AWS, GCP, Azure) have a way to set CORS policy including exposing additional headers through primary settings interface (AWS UI, Azure UI, gsutil) Smaller providers: don't have documented way to expose additional CORS headers: DigitalOcean, Scaleway, Backblaze), but should be doable via S3-compatible client and API Conclusion is: PMTiles client should progressively support ETags - it shouldn't break if the tag is not exposed, but perhaps log a warning |
We need to consider the side effects of caching the root directory + metadata as well. If we are using etag-based expiration, a request for a tile using a stale directory will be detected correctly, since the tile ETag will be different than the stale cached one. If we are only requesting the metadata for a stale directory, this will be served straight from cache (as intended). but there is no mechanism for invalidating this outside of requesting a tile. implications:
|
Metadata is not cached directly by the implementation. |
If a dataset is updated on object storage, and a client has a directory cached, file offset/lengths will be invalid and the PMTiles client will fetch garbage for tiles.
We can detect this situation via
ETag
:The text was updated successfully, but these errors were encountered: