30 septembre 2026 · 5 min de lecture
Comment rendre un bucket Cloudflare R2 public
Les buckets R2 sont privés par défaut. Personne ne peut lire un fichier sans requête d'API signée tant que vous n'avez pas explicitement donné une adresse publique au bucket. Il existe deux façons de le faire, et elles peuvent être utilisées en parallèle.
Option 1 : connecter un domaine personnalisé (recommandé)
Un domaine personnalisé sert le bucket via le réseau de Cloudflare avec mise en cache, et vous permet d'ajouter plus tard des règles WAF ou Cloudflare Access. Le domaine doit être une zone du même compte Cloudflare que le bucket (une configuration DNS complète ou en CNAME partiel convient).
- Dans le tableau de bord Cloudflare, allez dans R2 Object Storage et sélectionnez votre bucket.
- Ouvrez Settings, repérez Custom Domains, puis sélectionnez Add.
- Saisissez un sous-domaine comme
files.example.comet sélectionnez Continue. - Vérifiez l'enregistrement DNS que Cloudflare va créer et sélectionnez Connect Domain.
Le statut passe de Initializing à Active en quelques minutes. Ensuite, un objet de clé 2026/09/report.pdf est disponible à l'adresse https://files.example.com/2026/09/report.pdf.
Option 2 : activer la Public Development URL r2.dev
Pour un test rapide, R2 peut donner au bucket une adresse gérée par Cloudflare :
- Ouvrez les Settings du bucket.
- Sous Public Development URL, sélectionnez Enable.
- Tapez
allowpour confirmer et sélectionnez Allow.
Le bucket est désormais accessible à l'adresse https://pub-<id>.r2.dev/<key>. Cloudflare limite le débit de cette URL et la réserve au développement : passez donc à un domaine personnalisé avant de partager largement vos liens. Faire pointer votre propre CNAME vers l'adresse r2.dev n'est pas pris en charge.
Ce que l'accès public expose, et ce qu'il n'expose pas
- Lecture seule. L'accès public permet à n'importe qui de lire un objet dont il connaît la clé. Les envois et suppressions exigent toujours des identifiants d'API.
- Pas de listing du contenu. Ouvrir la racine du domaine ne liste pas le bucket. Des noms d'objets aléatoires rendent les liens difficiles à deviner.
- Tout le bucket. L'accès se règle par bucket, pas par dossier. Gardez les fichiers privés dans un bucket séparé.
- Mise en cache. Par défaut, Cloudflare ne met en cache que certaines extensions de fichiers. Ajoutez une règle de cache si vous voulez que tous les types de fichiers soient mis en cache.
Corriger Access Denied sur les liens R2
Si un lien renvoie Access Denied, 401 ou 403, vérifiez dans l'ordre :
- Le lien utilise votre domaine personnalisé ou l'URL r2.dev, et non
<account-id>.r2.cloudflarestorage.com. Cet hôte est l'API S3 et exige toujours une signature. - Le domaine personnalisé est Active et l'accès au bucket est Allowed dans les réglages du bucket.
- La clé dans l'URL correspond exactement à l'objet, dossiers et casse compris.
Questions fréquentes
Est-il risqué de rendre un bucket R2 public ?
Non, pour des fichiers destinés à être partagés. Toute personne disposant d'un lien peut lire ce fichier, mais elle ne peut ni lister le bucket, ni envoyer, ni supprimer. Gardez les données privées dans un autre bucket.
Un bucket R2 public coûte-t-il plus cher ?
Non. R2 ne facture pas le trafic sortant : les téléchargements publics n'ajoutent pas de coûts de bande passante. Les lectures comptent comme des opérations de classe B, qui bénéficient d'un quota mensuel gratuit.
Puis-je rendre public un seul dossier ?
Pas avec l'accès public de R2, qui s'applique à tout le bucket. Utilisez un bucket séparé, ou gardez le bucket privé et partagez des URL présignées.