30 de setembro de 2026 · 5 min de leitura
Como deixar um bucket do Cloudflare R2 público
Os buckets do R2 são privados por padrão. Ninguém consegue ler um arquivo sem requisições de API assinadas até você dar explicitamente um endereço público ao bucket. Há duas formas de fazer isso, e dá para usar as duas ao mesmo tempo.
Opção 1: conecte um domínio personalizado (recomendado)
Um domínio personalizado serve o bucket pela rede da Cloudflare com cache e permite usar regras de WAF ou o Cloudflare Access depois. O domínio precisa ser uma zona na mesma conta da Cloudflare do bucket (configuração completa ou parcial via CNAME, as duas funcionam).
- No painel da Cloudflare, vá em R2 Object Storage e selecione seu bucket.
- Abra Settings, encontre Custom Domains e selecione Add.
- Digite um subdomínio como
files.example.come selecione Continue. - Revise o registro DNS que a Cloudflare vai criar e selecione Connect Domain.
O status muda de Initializing para Active em poucos minutos. Depois disso, um objeto com a chave 2026/09/report.pdf fica disponível em https://files.example.com/2026/09/report.pdf.
Opção 2: ative a Public Development URL r2.dev
Para um teste rápido, o R2 pode dar ao bucket um endereço gerenciado pela Cloudflare:
- Abra as Settings do bucket.
- Em Public Development URL, selecione Enable.
- Digite
allowpara confirmar e selecione Allow.
O bucket agora pode ser acessado em https://pub-<id>.r2.dev/<key>. A Cloudflare limita a taxa de acesso dessa URL e diz que ela é para desenvolvimento, então troque para um domínio personalizado antes de compartilhar links em larga escala. Apontar seu próprio CNAME para o endereço r2.dev não é suportado.
O que o acesso público expõe e o que não expõe
- Somente leitura. O acesso público permite que qualquer pessoa leia objetos cuja chave ela conheça. Envios e exclusões continuam exigindo credenciais de API.
- Sem listagem de diretório. Acessar a raiz do domínio não lista o bucket. Nomes de objetos aleatórios deixam os links difíceis de adivinhar.
- Tudo o que está no bucket. O acesso é por bucket, não por pasta. Guarde arquivos privados em um bucket separado.
- Cache. Por padrão, a Cloudflare só faz cache de certas extensões de arquivo. Adicione uma regra de cache se quiser cache para todos os tipos de arquivo.
Como corrigir Access Denied em links do R2
Se um link retorna Access Denied, 401 ou 403, verifique estes pontos, nesta ordem:
- O link usa seu domínio personalizado ou a URL r2.dev, e não
<account-id>.r2.cloudflarestorage.com. Esse host é a API S3 e sempre exige uma assinatura. - O domínio personalizado aparece como Active e o acesso ao bucket está como Allowed nas configurações do bucket.
- A chave na URL corresponde exatamente ao objeto, incluindo pastas e maiúsculas e minúsculas.
Perguntas frequentes
É seguro deixar um bucket do R2 público?
É seguro para arquivos que você pretende compartilhar. Qualquer pessoa com um link consegue ler aquele arquivo, mas não consegue listar o bucket, enviar nem excluir. Guarde dados privados em outro bucket.
Um bucket público no R2 custa mais?
Não. O R2 não cobra egress, então downloads públicos não geram custo de banda. As leituras contam como operações Class B, que têm uma cota mensal gratuita.
Posso deixar só uma pasta pública?
Não com o acesso público do R2, que vale para o bucket inteiro. Use um bucket separado, ou mantenha o bucket privado e compartilhe URLs pré-assinadas.