Skip to main content
Cloudflare R2 (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.objects
  • storage.uploads
  • storage.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

DNS not attached yet — use the pub-….r2.dev development URL.
One of the five keys is missing/wrong — re-save the plugin.
Not as a Discover source. Use HLS URL sources or a video plugin for playback.