~/VibeHandbook
PDF grátis

Cloudflare

developers.cloudflare.com

R2

O que é

Imagine um enorme depósito on-line onde você deixa caixas de arquivos e depois vai buscá-las. O R2 é o armazenamento de objetos da Cloudflare — esse depósito — um lugar para guardar arquivos: imagens, vídeos, backups, uploads de usuários, artefatos de build. Ele fala a mesma (Application Programming Interface — Interface de Programação de Aplicações, o conjunto de comandos que as ferramentas usam para se comunicar com ele) que o Amazon S3, então a maioria das ferramentas e SDKs (Software Development Kits — Kits de Desenvolvimento de Software, bibliotecas de código prontas) do S3 funcionam nele sem mudanças. A grande diferença é o preço: o R2 cobra por armazenamento e operações, mas não tem taxas de saída (egress) (nenhuma cobrança por dados saindo do depósito), então entregar dados é gratuito.

Pontos fortes

  • Zero taxas de saída (egress) — uma economia enorme para apps com muita mídia ou muitos downloads.
  • API compatível com S3, então ferramentas e bibliotecas existentes simplesmente funcionam.
  • Pode ser vinculado diretamente a um Worker para leitura e escrita sem credenciais no código.
  • Pode ficar atrás da CDN da Cloudflare (Content Delivery Network — Rede de Distribuição de Conteúdo, um conjunto mundial de servidores que mantêm cópias dos arquivos perto de cada visitante) para entrega rápida e em .
  • Escala para objetos grandes e buckets grandes sem necessidade de provisionamento.

Trade-offs (concessões)

  • É armazenamento de objetos, não um sistema de arquivos ou banco de dados — não dá para fazer consultas dentro dos arquivos.
  • As operações (PUT/GET/LIST) são cobradas, então padrões de acesso muito "tagarelas" (com muitas chamadas) somam custo.
  • A consistência forte e alguns recursos diferem em detalhes do S3; verifique os casos extremos.
  • Para valores pequenos e alterados com frequência, o KV (um armazenamento chave-valor, como um dicionário gigante) ou o D1 (um banco de dados ) é uma escolha melhor.

Quando usar

Use o R2 para uploads de usuários, arquivos gerados, grandes ativos estáticos, exportações de dados e backups — especialmente em qualquer lugar onde os custos de banda no S3 pesariam no bolso.

Encaixe no vibe coding

O R2 combina bem com builds guiados por IA porque a vinculação (binding) elimina a dança de credenciais de sempre — o agente escreve direto em env.BUCKET. Diga ao agente se os arquivos são públicos (servidos por um Worker ou domínio personalizado) ou privados (acesso assinado), para que ele monte a entrega corretamente. O exemplo vincula um bucket e envia um arquivo pela (Command Line Interface — Interface de Linha de Comando).

# wrangler.toml
[[r2_buckets]]
binding = "BUCKET"
bucket_name = "uploads"
npx wrangler r2 bucket create uploads
npx wrangler r2 object put uploads/logo.png --file ./logo.png