Delivery notes
How to pull a file from us. There is no self-service dashboard: you talk to a human, we set up the bucket. Paths below are exactly as the edge nodes see them.
Fetching an asset
Everything lives under /assets/. A GET for /assets/<bucket>/<path> returns the object if the bucket is public and a 404 if it is not. Paths are case-sensitive and there is no directory listing, by design.
Cache headers
Versioned paths get Cache-Control: public, max-age=31536000, immutable. Every response carries an ETag; if you send If-None-Match and it matches, you get a 304 with an empty body. Purges reach the mirrors within about a minute.
Example request
curl -sSvo /dev/null \
https://cache-worker-02.global-static-assets.media/assets/acme-build/assets/app.4f2b19.js
< HTTP/2 200
< content-type: application/javascript
< content-length: 518432
< cache-control: public, max-age=31536000, immutable
< etag: "652f-18ba93cd11f"
< x-served-by: cache-worker-02
< x-cache: HIT
< accept-ranges: bytes
Rate limits
Soft limits per client IP: 2000 req/min sustained and 400 MB/s. Two minutes of burst are fine; after that you start collecting 429s with a Retry-After header.
If your launch needs more than that, tell us before the launch, not during it.