30 september 2026 · 5 min. leestijd
Zo maak je een Cloudflare R2-bucket openbaar
R2-buckets zijn standaard privé. Niemand kan een bestand lezen zonder ondertekende API-verzoeken, totdat je de bucket uitdrukkelijk een openbaar adres geeft. Dat kan op twee manieren, en je kunt ze naast elkaar gebruiken.
Optie 1: koppel een eigen domein (aanbevolen)
Een eigen domein serveert de bucket via het netwerk van Cloudflare, met caching, en laat je later WAF-regels of Cloudflare Access gebruiken. Het domein moet een zone zijn in hetzelfde Cloudflare-account als de bucket (een volledige of een gedeeltelijke CNAME-configuratie werken allebei).
- Ga in het Cloudflare-dashboard naar R2 Object Storage en selecteer je bucket.
- Open Settings, zoek Custom Domains en kies Add.
- Vul een subdomein in zoals
files.example.comen kies Continue. - Controleer het DNS-record dat Cloudflare gaat aanmaken en kies Connect Domain.
Binnen een paar minuten verandert de status van Initializing in Active. Daarna is een object met de sleutel 2026/09/report.pdf bereikbaar op https://files.example.com/2026/09/report.pdf.
Optie 2: schakel de r2.dev Public Development URL in
Voor een snelle test kan R2 de bucket een adres geven dat Cloudflare beheert:
- Open de Settings van de bucket.
- Kies onder Public Development URL voor Enable.
- Typ
allowter bevestiging en kies Allow.
De bucket is nu bereikbaar op https://pub-<id>.r2.dev/<key>. Cloudflare beperkt het aantal verzoeken op deze URL en zegt dat hij bedoeld is voor ontwikkeling, dus stap over op een eigen domein voordat je links breed deelt. Een eigen CNAME naar het r2.dev-adres laten wijzen wordt niet ondersteund.
Wat openbare toegang wel en niet blootgeeft
- Alleen lezen. Met openbare toegang kan iedereen objecten lezen waarvan hij de sleutel kent. Uploaden en verwijderen vereisen nog steeds API-inloggegevens.
- Geen mapoverzicht. Wie de hoofdpagina van het domein bezoekt, krijgt de inhoud van de bucket niet te zien. Willekeurige objectnamen maken links moeilijk te raden.
- Alles in de bucket. Toegang geldt per bucket, niet per map. Bewaar privébestanden in een aparte bucket.
- Caching. Standaard cachet Cloudflare alleen bepaalde bestandsextensies. Voeg een cacheregel toe als je elk bestandstype in de cache wilt hebben.
Access Denied bij R2-links oplossen
Geeft een link Access Denied, 401 of 403, controleer dan in deze volgorde:
- De link gebruikt je eigen domein of r2.dev-URL, niet
<account-id>.r2.cloudflarestorage.com. Die host is de S3-API en vereist altijd een handtekening. - Het eigen domein staat op Active en toegang tot de bucket staat op Allowed in de instellingen van de bucket.
- De sleutel in de URL komt exact overeen met het object, inclusief mappen en hoofdletters.
Veelgestelde vragen
Is het veilig om een R2-bucket openbaar te maken?
Voor bestanden die je wilt delen wel. Iedereen met een link kan dat bestand lezen, maar niemand kan de inhoud van de bucket opvragen, uploaden of verwijderen. Bewaar privégegevens in een andere bucket.
Kost een openbare R2-bucket meer?
Nee. R2 rekent niets voor egress, dus openbare downloads leveren geen bandbreedtekosten op. Leesacties tellen als Class B-bewerkingen, waarvoor elke maand een gratis tegoed geldt.
Kan ik maar één map openbaar maken?
Niet met de openbare toegang van R2, die voor de hele bucket geldt. Gebruik een aparte bucket, of houd de bucket privé en deel presigned URL's.