Voltar aos materiais
TUTORIALPERFORMANCECLOUDFLARE-IMAGESCLOUDFLARE

Cloudflare Images + R2: imagens rápidas, otimizadas e rastreáveis

Veja como combinar Cloudflare Images e R2 para upload seguro, WebP/AVIF, variantes, cache, preço e capas sem precisar de novo deploy.

Por Mauro Mequelussi

5_MIN
Cloudflare Images + R2: imagens rápidas, otimizadas e rastreáveis
Em resumo

Veja como combinar Cloudflare Images e R2 para upload seguro, WebP/AVIF, variantes, cache, preço e capas sem precisar de novo deploy.

Uma imagem de capa pode ser bonita e ainda atrapalhar o produto se chegar pesada ao celular, sem cache ou em um tamanho que a tela não usa. Cloudflare Images resolve transformação e otimização na edge; R2 resolve armazenamento. Juntos, eles permitem guardar um original uma vez e entregar a variação certa para cada uso.

No nosso stack, R2 é a fonte de arquivos e o binding IMAGES transforma conteúdo via API. Isso evita subir manualmente uma cópia para card, outra para hero, outra para mobile e outra em WebP. A aplicação continua responsável por upload seguro, relação com a tabela file e cache.

R2 e Cloudflare Images não concorrem

ServiçoPapelExemplo no produto
R2guardar arquivo e metadadoscapa original do artigo, material ou anexo
Cloudflare Imagesredimensionar, converter, cortar e otimizarthumbnail 600×315 em WebP/AVIF
Workerautorizar e aplicar regrasbloquear PDF no endpoint de imagem
banco filerastrear dono e vínculoqual artigo usa a capa

R2 não gera variações automaticamente. Cloudflare Images não sabe qual usuário pode trocar uma capa. O Worker une as peças com regra de negócio.

Cenário: blog rápido sem novo deploy para trocar capa

O Gestor envia a imagem para a API. A API valida tipo e tamanho, cria uma key versionada no R2, registra file e devolve a URL. Quando o Portal precisa de uma versão menor, ele pede transformação com largura, altura, fit e formato definidos. A capa original permanece preservada; a derivada pode ser cacheada.

Gestor → API autenticada → R2 (original) → file/uses_file
Portal → Worker Images binding → WebP ou AVIF otimizado → CDN

Esse fluxo também permite uma política clara: capa pública pode sair por custom domain; comprovante financeiro nunca passa pelo mesmo endpoint aberto.

O preço que realmente importa

Cloudflare Images Free permite até 5 mil transformações únicas por mês. Acima disso, novas transformações retornam erro até você migrar para Images Paid. No plano pago, as primeiras 5 mil transformações seguem incluídas e as adicionais custam US$ 0,50 por mil. Se você usar R2 como storage, paga apenas transformação no Images e storage/operações no R2; não paga o modelo de armazenamento do Cloudflare Images.

Uma “transformação única” é a combinação do original e parâmetros. A mesma imagem com 100×100 e 1200×630 conta como duas; repetir 1200×630 no mês não cria outra transformação. Portanto, defina poucas variantes de produto, não um tamanho livre para cada query string recebida.

Não deixe parâmetros de imagem completamente abertos
Um atacante ou um bug pode criar milhares de tamanhos únicos. Valide largura, altura, formato e fit; prefira variantes conhecidas como avatar, card e cover.

Quando usar transformação no Worker

O binding de Images funciona com bytes e não exige que o arquivo esteja acessível em URL pública. Isso é útil para um arquivo privado autorizado pela API. A URL de entrega pode bastar para imagem pública simples; o binding dá mais controle quando você já está no Worker e precisa aplicar regra antes de transformar.

SituaçãoEscolha
imagem pública, tamanhos fixosURL/variante cacheável
arquivo privadoWorker valida acesso e usa binding
upload de usuárioAPI valida e grava R2; não transforme no browser
muitos tamanhos arbitráriosdefina whitelist de variantes
imagem editorial que quase não mudagere WebP de capa e cache longo

Prós e contras

Prós: melhor LCP, conversão de formato, menos cópias manuais, cache global e pipeline simples com R2. Contras: transformação tem limite/custo por variação, precisa de regra de cache e não substitui curadoria de imagem, acessibilidade ou consentimento de uso.

Checklist de imagem de produção

  • original tem MIME type e tamanho validados;
  • key de R2 é versionada;
  • arquivo público e privado têm caminhos separados;
  • variantes são limitadas e documentadas;
  • alt descreve a informação visual relevante;
  • cache usa URL imutável quando o arquivo muda de key;
  • métricas acompanham erro de transformação e volume de variantes.

[ CONTEÚDO_INTEGRAL_DISPONÍVEL ]

Continuar: meça uso, cache e falhas sem explodir cardinalidade

CLIQUE PARA DESBLOQUEAR A LEITURA

Construindo aplicações robustas com arquitetura de alto nível e infraestrutura otimizada na edge do Cloudflare Workers com SurrealDB.

Segurança de dados e conformidade com privacidade desde o primeiro dia de código com tratamento de estados e sessões resilientes.

Métricas de performance para monitorar a experiência do usuário e otimizar custos operacionais em produção com dashboards estruturados.

Continuação liberada

Perguntas frequentes

Cloudflare Images armazena a imagem obrigatoriamente?

Não. Você pode usar R2 ou outra origem como armazenamento e pagar apenas pelas transformações. O armazenamento gerenciado no Images é outra modalidade.

Preciso salvar WebP e AVIF manualmente?

Não necessariamente. A transformação pode negociar formatos adequados. Ainda assim, mantenha o original e defina uma estratégia de fallback.

R2 com cache longo pode servir imagem antiga?

Pode, se você sobrescrever a mesma key. Use uma nova key ao alterar conteúdo e mantenha cache imutável para a URL publicada.

Fontes e leitura recomendada

Comece a construir

Quer transformar uma ideia em produto? O kit Sniper Apps reúne base, componentes e método para publicar com mais velocidade.

CONHECER_O_KIT →
Continue explorando
Ver todos os artigos →