There's some issues but it's relatively stable now.
There's some issues but it's relatively stable now.
The following features are currently on the roadmap for R2 but not yet implemented.Pre-signed URLs are now implemented!
- Public Buckets
- Mapping a bucket to your custom domain
In the meantime, you can use a Worker to replicate the vast majority of functionality such as serving & caching public assets.
Take a look at the Demo Worker example here: https://developers.cloudflare.com/r2/examples/demo-worker/
Also, there's a great community project called Render that's made for R2:
https://github.com/kotx/render
Workers will not be required for making assets publicly available in the future, they are just an interim stop-gap.
The following features are currently on the roadmap for R2 but not yet implemented.Pre-signed URLs are now implemented!
- Public Buckets
- Mapping a bucket to your custom domain
In the meantime, you can use a Worker to replicate the vast majority of functionality such as serving & caching public assets.
Take a look at the Demo Worker example here: https://developers.cloudflare.com/r2/examples/demo-worker/
Also, there's a great community project called Render that's made for R2:
https://github.com/kotx/render
Workers will not be required for making assets publicly available in the future, they are just an interim stop-gap.
CopyObject as a custom copy directive (we have REPLACE so probably SYMLINK might work there). That solves 1 and 2 but makes 3 weird since after issuing a CopyObject to create object2/test2.txt --> object1/test.txt, DeleteObject object1/test.txt, the copy "doesn't exist" and is dangling metadata that you'd be billed for that's difficult to cleanup (you'd have to basically try to access that object or encounter it in a list). What happens if you now put a new object1/test.txt ListObject but always returns a 404 on a GET (but does it respond to a HEAD request? maybe only if there's an option that says "don't resolve symlinks"?)PutObject object1/test.txtCopyObject object2/test2.txt --> object1/test.txtCopyObject object1/test.txt --> object2/test2.txtCopyObjectCopyObjectCopyObjectCopyObjectREPLACESYMLINKobject2/test2.txt --> object1/test.txtobject2/test2.txt --> object1/test.txtDeleteObjectobject1/test.txtobject1/test.txtobject1/test.txtListObjectPutObjectobject1/test.txt --> object2/test2.txt