storage.cloudflare_r2) is a Streamly plugin in the storage category.
R2 stores media objects (posters, branding, local uploads). Until R2 is fully configured, Streamly falls back to Supabase storage. R2 never appears in Catalog → Add source.
Learn the service
Watch this overview of the vendor platform (helpful before you paste keys into Streamly).Getting started with R2 — Cloudflare Developers.
At a glance
Capabilities
storage.objectsstorage.uploadsstorage.signed_urls
When to use it
- CDN-friendly posters & branding assets
- Local file uploads without filling Supabase
How it works
Uploads from catalog media, branding, and blog routes go through the R2 plugin when credentials + public URL are valid. Used by:POST /api/v1/catalog/media, /api/operator/branding/media, /api/v1/blog/media.
Activation keys
Configure in/admin/plugins → Cloudflare R2 → Configure. Secret fields stay server-side — never commit them or expose as NEXT_PUBLIC_* unless the key is intentionally public (e.g. Stripe publishable key).
Setup guide
1
Create bucket
R2 → Create bucket.
2
Enable public URL
Bucket Settings → Public Development URL → copy into
publicBaseUrl.3
API token
Create R2 token with object R/W → paste keys.
4
Verify
Upload a poster in Catalog; confirm the URL uses your public base.
Official vendor documentation
FAQ
NXDOMAIN on custom CDN host
NXDOMAIN on custom CDN host
DNS not attached yet — use the
pub-….r2.dev development URL.Still uploading to Supabase
Still uploading to Supabase
One of the five keys is missing/wrong — re-save the plugin.
Can I play videos from R2 as a source?
Can I play videos from R2 as a source?
Not as a Discover source. Use HLS URL sources or a video plugin for playback.