How to set headers on objects in R2 using rclone
How do you set a Cache-Control header on an object in R2 when you’re using rclone to upload?
I burned a lot of time figuring this out. There are a lot of options that look like they’ll do it, but here it is:
--header-upload='Cache-Control: max-age=604800,public,immutable'
That’s the flag you want to use with rclone copy to set a Cache-Control
header with Cloudflare R2. Whew.
Reason: sure, you can set cache rules at like 5 levels of the Cloudflare stack - Cache Rules, etc. But it’s really hard to get the right caching behavior for static JavaScript bundles, which is:
- 404s aren’t cached
- Non-404s are cached heavily
This does it. Phew.