Alternar tema

Hospedagem de imagens grátis: Cloudflare R2 + PicGo para um fluxo estável

Easton editorial illustration: global cache relay

Em 2023, hospedei as imagens do blog no GitHub junto com o CDN jsDelivr. Funcionava bem. Até que o jsDelivr foi bloqueado na China, e todas as imagens do blog viraram links quebrados. Depois testei algumas hospedagens gratuitas de imagem: algumas apagavam arquivos sem aviso, outras simplesmente saiam do ar. Qiniu Cloud e Alibaba Cloud OSS são estáveis, mas na China exigem registro ICP de domínio e ainda trazem risco de custo extra.

O Cloudflare R2 oferece 10GB grátis, 1 milhão de uploads por mês e 10 milhões de leituras por mês. O ponto decisivo é que o tráfego de saída é totalmente gratuito. Usei por meio ano sem gastar um centavo, e a velocidade ficou boa. Com o PicGo para upload em um clique, o fluxo fica bem suave. Este artigo organiza o processo completo: por que escolher R2, como configurar acesso público e como conectar o PicGo ao R2. Dá para deixar tudo pronto em 30 minutos.

10GB
Armazenamento gratuito
Suficiente para blog pessoal
1 milhão
Uploads por mês
Operacoes Classe A
10 milhões
Leituras por mês
Operações Classe B
Source: Cota gratuita do R2

Por que escolher o R2 como hospedagem de imagens?

Antes de decidir pelo R2, comparei várias alternativas. Vale olhar primeiro para o estádo das hospedagens gratuitas de imagem; assim fica claro por que acabei escolhendo o R2.

Problemas de outras opções gratuitas de hospedagem de imagens

GitHub + jsDelivr: já foi a opção mais gostosa de usar, mas hoje não serve mais para esse caso. O jsDelivr sofreu poluição de DNS e bloqueio na China, então as imagens do blog simplesmente deixam de carregar. E, sendo bem direto, usar GitHub como armazenamento de imagens sempre foi um abuso da plataforma: cada upload gera um commit, bagunça o histórico e, se um dia a conta for bloqueada, todas as imagens somem junto.

Hospedagens públicas gratuitas (como SM.MS, Lu Guo Tu Chuang e similares): o problema desse tipo de serviço é a instabilidade. Alguns removem imagens sem aviso, outros fecham de uma hora para outra. Ja vi muitos blogs virarem um monte de imagens quebradas porque o serviço de hospedagem saiu do ar. Serviço gratuito parece ótimo, mas você teria coragem de colocar todos os ativos visuais do blog nele?

Provedores chineses de nuvem (Qiniu Cloud, Alibaba Cloud OSS, Tencent Cloud COS): esses serviços são estáveis, e o Qiniu Cloud também oferece 10GB gratuitos. O ponto duro é que serviços de nuvem na China exigem registro ICP de domínio. Para um blog pessoal, esse processo é trabalhoso, e ainda existe o risco de cobrança ao ultrapassar a cota. O custo nem é tão alto, talvez alguns yuans por mês depois de passar de 10GB, mas a sensação é de ficar sempre com uma conta aberta.

Principais vantagens do R2

Depois de comparar, o Cloudflare R2 acabou sendo a melhor solução atual para hospedagem pessoal de imagens. Usei por meio ano e resumiria as vantagens assim:

1. A cota gratuita sobra para uso pessoal

A cota gratuita do R2 inclui:

  • Armazenamento: 10 GB
  • Uploads por mês: 1 milhão (operações Classe A)
  • Leituras por mês: 10 milhões (operações Classe B)

Para um blog pessoal, isso sobra. O meu blog tem mais de 100 artigos e cerca de 500 imagens, ocupando menos de 2GB no total. Nesse ritmo, 10GB duram vários anos. Mesmo se passar da cota, o preço é baixo: armazenamento a $0.015/GB/mês, que equivale a poucos centavos por GB ao mês.

2. Tráfego de saída totalmente gratuito

Essa é a maior vantagem do R2 sobre o AWS S3. Armazenamento em nuvem tradicional, como S3 ou Alibaba Cloud OSS, cobra pelo tráfego de saída, geralmente alguns centavos ou mais por GB. Se o blog tiver bastante acesso, essa conta pode ficar maior que o próprio armazenamento.

No R2, o tráfego de saída é gratuito. Não importa quantas vezes suas imagens sejam acessadas ou baixadas, isso não gera custo extra. A Cloudflare usa sua própria rede global de CDN, com 100+ países e 275 cidades, para distribuir o conteúdo. O tráfego passa pela rede interna deles, sem essa cobrança adicional.

3. Provedor grande, mais previsível

A Cloudflare é um dos maiores provedores de CDN do mundo, com valor de mercado na casa de dezenas de bilhões de dólares. Usar um serviço dela reduz o medo de o provedor desaparecer ou apagar arquivos do nada. A Cloudflare também tem fama de ser especialmente amigável com usuários individuais, porque muitos serviços oferecem cotas gratuitas bastante generosas.

4. Compatibilidade com API S3 e migração futura

O R2 é totalmente compatível com o padrão da API AWS S3. Isso significa que, se no futuro você quiser migrar para outro serviço compatível com S3, como MinIO ou Alibaba Cloud OSS, basta ajustar a configuração. Não precisa reescrever código nem trocar o fluxo de ferramentas. Essa flexibilidade ajuda a evitar lock-in de fornecedor.

5. Sem registro ICP, pronto para usar

O R2 é um serviço internacional, e vincular seu próprio domínio não exige registro ICP. Criar conta na Cloudflare, ativar R2 e concluir a configuração leva cerca de 30 minutos. Para quem mantém um blog pessoal, isso é bem mais simples.

Um lembrete rápido

O único ponto de atenção do R2 é que, para ativar o serviço, você precisa vincular um cartão de crédito ou PayPal. Isso serve apenas para verificação de identidade, não para cobrança automática. Eu também hesitei na hora, mas depois de vincular vi que era realmente só verificação. Usei por meio ano sem nenhuma cobrança. Se ainda ficar inseguro, dá para usar um cartão virtual ou vincular um PayPal doméstico, que também funciona.

Com as vantagens claras, vamos montar a solução.

Fluxo completo para montar hospedagem de imagens com Cloudflare R2 + PicGo

Guia passo a passo de 30 minutos para criar uma hospedagem pessoal de imagens gratuita, da ativação do R2 ao upload em um clique pelo PicGo

Estimated time: PT30M

  1. 1

    Step 1: Passo 1: registrar conta e ativar o R2

    Crie uma conta na Cloudflare e, na barra lateral, encontre R2 Object Storage para ativar o serviço.
  2. 2

    Step 2: Passo 2: criar um bucket

    Clique em Create bucket no canto superior direito e escolha um nome fácil de reconhecer, como blog-images. O nome precisa ser globalmente único.
  3. 3

    Step 3: Passo 3: configurar acesso público, a parte essencial

    Modo 1, para testes:
  4. 4

    Step 4: Passo 4: criar um token de API

    Volte para a página Overview do R2 e clique em Manage R2 API Tokens -> Create API Token.
  5. 5

    Step 5: Passo 5: instalar PicGo e plugin S3

    Baixe o PicGo:
  6. 6

    Step 6: Passo 6: configurar os parâmetros S3 no PicGo

    Clique em Image Hosting Settings -> Amazon S3 e preencha:
  7. 7

    Step 7: Passo 7: testar upload

    Passos de teste:
  8. 8

    Step 8: Passo 8: otimizar, opcional

    Configure regras de cache:

Passo a passo detalhado para montar a hospedagem com R2

Agora vamos para a parte prática. Vou detalhar cada etapa; basta seguir com calma.

Passo 1: registrar conta e ativar o R2

Primeiro, você precisa de uma conta Cloudflare. Se ainda não tem, va ao site da Cloudflare e crie uma conta grátis com e-mail e senha. É simples.

Depois de entrar, encontre R2 Object Storage na barra lateral esquerda e abra a página. Se for a primeira vez que você usa o serviço, a Cloudflare vai pedir a ativação.

Ponto importante: para ativar o R2, é necessário vincular um método de pagamento, cartão de crédito ou PayPal.

Muita gente para nessa etapa, e eu também hesitei na primeira vez. Mas isso serve apenas para verificar identidade. Não há cobrança automática. A cota gratuita da Cloudflare é real; só há cobrança se você ultrapassar a cota de forma ativa e confirmar o pagamento.

Voce pode vincular:

  • cartão de crédito internacional, como Visa ou MasterCard
  • PayPal, inclusive PayPal doméstico na China
  • cartão virtual, se quiser reduzir risco

Depois de vincular, clique para ativar o serviço R2. Em poucos segundos ele fica pronto.

Passo 2: criar um bucket

Depois de ativar o R2, clique no botao Create bucket no canto superior direito.

Nome do bucket: escolha um nome fácil de reconhecer, como blog-images ou my-pics. Esse nome é globalmente único; se já estiver em uso, você precisa escolher outro.

Localização: aqui existe um detalhe pratico.

Muitos tutoriais recomendam automaticamente Asia Pacific (APAC), porque fica mais perto da China e tende a ser mais rápido. Mas isso não é absoluto. Testei duas localizacoes e percebi:

  • Asia Pacific: o acesso na China é um pouco mais rápido, mas o acesso internacional pode ficar limitado
  • Western North America (WNAM): com a CDN da Cloudflare, a velocidade global fica mais equilibrada, e a velocidade na China ainda é aceitável

Eu escolhi Western North America porque o blog também pode ter leitores fora da China, e a experiência geral fica melhor. Voce pode escolher conforme o público do seu site.

Classe de armazenamento: escolha Standard.

Depois clique em Create. Em poucos segundos o bucket estará criado.

Passo 3: configurar acesso público, a etapa essencial

Depois de criar o bucket, entre na página de configurações dele. Esta etapa é importante e também onde muita gente trava.

Por padrão, o R2 é privado. Para que as imagens possam ser acessadas publicamente, existem duas formas:

Modo 1: ativar o subdomínio r2.dev, bom para testes

Este e o caminho mais simples e serve para os primeiros testes.

  1. Na página de configurações do bucket, role até encontrar R2.dev subdomain
  2. Clique em Allow Access
  3. Na caixa de confirmação, digite allow e confirme

Depois disso, a Cloudflare gera uma URL pública parecida com:

https://pub-xxxxx.r2.dev

Mas aqui existe uma pegadinha importante: o subdomínio r2.dev tem limite de taxa de acesso e serve apenas para desenvolvimento e testes. Se o blog tiver bastante tráfego, você pode bater esse limite e as imagens deixam de carregar. A própria Cloudflare recomenda domínio personalizado para produção.

Na minha primeira configuração, ignorei esse ponto. Quando o tráfego do blog subiu um pouco, as imagens começaram a falhar. Depois troquei para domínio personalizado. Foi uma lição aprendida do jeito chato.

Modo 2: vincular domínio personalizado, recomendado para produção

Se você tem um domínio próprio, recomendo fortemente este caminho. Além de não ter o limite de taxa do r2.dev, ele permite configurar cache, proteção contra hotlink e outros recursos avançados.

Pré-requisito: seu domínio precisa estar gerenciado pela Cloudflare, ou seja, os servidores DNS do domínio precisam apontar para a Cloudflare. Se ainda não estiver, adicione o domínio no painel da Cloudflare e siga as instruções para trocar os servidores DNS. O processo é gratuito.

Passos:

  1. Na página de configurações do bucket, encontre Custom Domains
  2. Clique em Add
  3. Informe o subdomínio desejado, por exemplo img.yourdomain.com
  4. Clique em Continue
  5. A Cloudflare adiciona automaticamente um registro CNAME ao DNS
  6. Clique em Connect Domain

Depois de alguns minutos, quando o DNS propagar, seu domínio personalizado estará pronto. A URL das imagens passa a ser:

https://img.yourdomain.com/path/to/image.png

Eu uso domínio personalizado, junto com a estratégia de cache que aparece mais abaixo. Fica estável e rápido.

Passo 4: criar o token de API

Depois de configurar o acesso público, você precisa gerar as chaves de API para que o PicGo consiga se conectar ao R2 e enviar imagens.

  1. Volte para a página Overview do R2
  2. Clique em Manage R2 API Tokens no canto superior direito
  3. Clique em Create API Token
  4. De um nome ao token, como PicGo-Upload
  5. Em permissões, escolha Object Read & Write
  6. Clique em Create API Token

Muito importante! Depois de criar, a Cloudflare mostra três informações:

  • Access Key ID
  • Secret Access Key
  • S3 API endpoint, parecido com https://xxxxx.r2.cloudflarestorage.com

Essas três informações só aparecem uma vez. Depois de fechar a página, você não consegue vê-las de novo. Copie e salve imediatamente em um local seguro, como um gerenciador de senhas ou um arquivo local criptografado.

Se você fechar sem salvar, a única saída é apagar o token e criar outro. Na primeira vez, eu fechei rápido demais e precisei recriar. Não repita esse erro.

Dica: o S3 API endpoint também aparece em Overview -> Use R2 with S3 API. É a URL que começa com HTTPS.

Com isso, a parte do R2 está pronta. Agora vamos configurar o PicGo.

Configurando o PicGo na prática

O PicGo é uma ferramenta open source para upload de imagens, com suporte a vários serviços de hospedagem. Depois de configurado, você arrasta uma imagem, ele envia automaticamente e gera o link em formato Markdown. É bem prático.

Passo 1: instalar PicGo e plugin S3

Baixar o PicGo

Acesse o site do PicGo ou a página de GitHub Releases e baixe o instalador do seu sistema:

  • Windows: arquivo .exe
  • macOS: arquivo .dmg
  • Linux: arquivo .AppImage

A instalação é simples: basta seguir o assistente.

Opcao avancada: PicList

Se você quiser mais recursos, recomendo o PicList, um fork do PicGo. Ele adiciona:

  • gerenciamento de imagens, para ver e apagar arquivos já enviados
  • compressão de imagens, com ou sem perda
  • conversão de formato, como WebP
  • adição de marca d’agua

Hoje eu uso o PicList. Ele é mais completo, e o método de instalação é igual ao do PicGo.

Instalar o plugin S3

O PicGo não oferece suporte ao protocolo S3 por padrão, então você precisa instalar um plugin.

  1. Abra o PicGo e clique em Plugin Settings na barra lateral
  2. Digite s3 na busca
  3. Alguns plugins vao aparecer; recomendo picgo-plugin-s3 ou s3-lls. Os dois funcionam e são parecidos
  4. Clique em Install e aguarde concluir

Atenção: a instalação do plugin precisa de ambiente Node.js. Se falhar, as causas comuns são:

  • problema de rede, porque o plugin e baixado do GitHub e pode ser lento na China
  • ausencia de Node.js; nesse caso, baixe pelo site do Node.js
  • permissão do sistema, especialmente no Windows, onde talvez seja preciso rodar como administrador

Se mêsmo assim não instalar, tente instalação offline ou use outra rede.

Passo 2: configurar parâmetros S3

Depois que o plugin estiver instalado, clique em Image Hosting Settings na lateral, encontre Amazon S3 ou AWS S3 e abra a configuração.

Esta parte é crítica. Cada parâmetro precisa estar correto. Vamos por partes.

Access Key ID

Preenchá com o Access Key ID que você salvou ao criar o token da API no R2.

Secret Access Key

Preenchá com a Secret Access Key.

Não inverta os dois campos. O ID costuma ser uma string mais curta; a chave secreta e mais longa.

Bucket Name

Preenchá com o nome do bucket criado no R2, por exemplo blog-images.

Use o nome do bucket, não ARN, não URL. E exatamente o nome definido na criação.

Upload Path

Este campo define como as imagens ficam organizadas dentro do bucket. Alguns formatos recomendados:

  • {year}/{month}/{md5}.{extName} - organiza por ano e mês, usando MD5 para evitar nomes repetidos
  • PicGo/{fullName} - coloca tudo na pasta PicGo, mantendo o nome original
  • {year}/{month}/{fullName} - organiza por ano e mês, mantendo o nome original

Eu uso a primeira opção. Ela evita colisão de nomes e ainda facilita organizar por data.

Lembrete importante: o caminho não deve comecar com /. Escreva diretamente {year}/{month}/.... Se você adicionar / no inicio, o upload pode falhar ou gerar caminhos estranhos.

Endpoint personalizado

Preenchá com o S3 API endpoint salvo antes, no formato https://xxxxx.r2.cloudflarestorage.com.

Inclua https://; não deixe isso de fora.

Custom Domain

Aqui entra o domínio público que você configurou. Depende da escolha anterior:

  • se usar domínio personalizado, preencha https://img.yourdomain.com
  • se usar r2.dev, preencha a Public Bucket URL, visivel nas configurações do bucket, parecida com https://pub-xxxxx.r2.dev

Esse domínio define o link final das imagens, então precisa estar correto.

Outros parâmetros

  • Region: pode preencher qualquer valor, como auto ou us-east-1; o R2 não depende desse parâmetro
  • Upload method: escolha Path Style

Passo 3: testar o upload

Depois de configurar, não comece a usar direto. Teste primeiro.

  1. Clique em OK para salvar
  2. Marque como hospedagem padrão, para que uploads futuros usem o R2 automaticamente
  3. Clique na área de upload na lateral
  4. Arraste uma imagem de teste ou clique para escolher uma imagem

Se a configuração estiver correta, em poucos segundos você vera a mensagem de sucesso, e o link da imagem será copiado para a área de transferência.

Confira o link: cole a URL no navegador e veja se a imagem abre. Se abrir, a configuração funcionou.

Erros comuns e como resolver

Se o upload falhar, confira estes pontos:

  1. Access Denied ou erro 403
    • confira se as chaves da API foram preenchidas corretamente e sem inversão
    • confira se o token da API tem permissão Object Read & Write
    • confira se o nome do bucket está correto
  2. A imagem sobe, mas não pode ser acessada
    • confira se o acesso público foi ativado, via r2.dev ou domínio personalizado
    • confira se o domínio personalizado está correto e inclui https://
    • aguarde alguns minutos; talvez o DNS ainda não tenhá propagado
  3. Upload muito lento ou timeout
    • pode ser rede, já que o R2 fica fora da China
    • se a imagem for grande, comprima antes. O PicList já traz compressão
  4. Caminho de arquivo errado ou diretórios estranhos
    • confira se o Upload Path comeca com /; se comecar, remova
    • confira se o formato do caminho está correto

Na primeira vez, eu tinha invertido Access Key ID e Secret Access Key. Perdi um bom tempo até perceber. Se algo der errado, revise cada parâmetro antes de mexer em outras coisas. Na maioria das vezes, é só configuração preenchida errado.

Otimização e técnicas avançadas

Até aqui, a hospedagem básica de imagens já funciona. Mas, se você quiser mais estabilidade, velocidade e tranquilidade, vale aplicar alguns ajustes.

Configurar estratégia de cache, altamente recomendado

Se você usa domínio personalizado, configure regras de cache. Isso traz três benefícios:

  • reduz o número de requisições ao R2 e evita passar da cota gratuita
  • acelera o carregamento das imagens, porque a resposta vem direto do cache da CDN
  • reduz risco de tráfego malicioso consumindo sua cota

Como configurar:

  1. Entre no painel da Cloudflare e selecione seu domínio
  2. Clique em Rules -> Page Rules ou Cache Rules
  3. Crie uma regra nova com URL correspondente a img.yourdomain.com/*, trocando pelo seu domínio
  4. Configure:
    • Cache Level: Cache Everything
    • Edge Cache TTL: de 1 mês a 1 ano; recomendo 6 meses
    • Browser Cache TTL: 1 mês

Depois disso, a primeira visita a uma imagem ainda lê do R2, mas as seguintes retornam do cache da CDN da Cloudflare. Na prática, quase não consomem leituras do R2.

Eu uso cache de 6 meses. Depois de bastante tempo, o número real de requisições ao R2 ficou em apenas alguns milhares, totalmente dentro da cota gratuita.

Alguns milhares
Requisicoes reais
Source: Depois da estratégia de cache de 6 meses

Aceleração para acesso na China, opcional

A CDN da Cloudflare na China depende um pouco da região e da sorte. Algumas áreas ficam boas; outras podem ser lentas. Se o público principal do seu blog estiver na China, considere estas opções:

Opcao 1: Tencent Cloud EdgeOne

É a versão internacional de CDN da Tencent Cloud. Tem cota gratuita, não exige registro ICP e pode ser usada para acelerar o R2.

  • Vantagem: acesso mais rápido na China e cota gratuita suficiente
  • Desvantagem: exige outra conta na Tencent Cloud e a configuração é um pouco mais complexa

Opcao 2: WebP Cloud

Um serviço focado em proxy e otimização de imagens. Ele pode converter imagens automaticamente para WebP e manter cache.

  • Vantagem: comprime imagens automaticamente e economiza tráfego
  • Desvantagem: tem limite de requisições; se passar, precisa pagar

Opcao 3: separação entre China e exterior

Use uma ferramenta como rclone para sincronizar imagens do R2 para uma nuvem chinesa, como Tencent Cloud COS. Usuários na China acessam a hospedagem chinesa; usuários fora da China acessam o R2.

  • Vantagem: boa velocidade nos dois lados
  • Desvantagem: exige mais conhecimento técnico e tem custo de manutenção maior

Sendo sincero, eu uso o método mais simples: domínio personalizado + regras de cache. Não e o mais rápido do mundo, mas a velocidade na China fica aceitável, em torno de 1 a 3 segundos, o que é suficiente para um blog pessoal. Se você tiver exigência alta de velocidade, aí sim vale considerar uma solução de aceleração.

Seguranca e proteção

Depois de montar a hospedagem, também é preciso evitar abuso.

Desativar acesso r2.dev

Se você já configurou domínio personalizado, lembre-se de fechar o acesso público via r2.dev. Caso contrário, alguém pode contornar regras como proteção contra hotlink usando diretamente o domínio r2.dev.

Como fazer: entre nas configurações do bucket -> R2.dev subdomain -> Disallow Access, digite disallow e confirme.

Protecao contra hotlink

Com o WAF da Cloudflare, Web Application Firewall, você pode limitar quais sites conseguem incorporar suas imagens.

Configuração simples:

  1. Console da Cloudflare -> Security -> WAF
  2. Crie uma regra personalizada
  3. Condicao: Referer não contem yourblog.com
  4. Acao: bloquear ou desafiar

Assim, outras pessoas não conseguem usar seus links de imagem diretamente nos próprios sites.

Monitorar uso

Confira periodicamente o uso do R2 para evitar passar da cota.

No console do R2, você consegue ver:

  • uso de armazenamento
  • número mensal de requisições, Classe A e Classe B

Se notar crescimento anormal, investigue rapidamente se alguém está gerando tráfego indevido.

Conclusão

Pronto. A hospedagem de imagens com R2 está montada.

Recapitulando o que fizemos:

  1. Criamos conta e ativamos Cloudflare R2, recebendo 10GB de armazenamento gratuito
  2. Criamos um bucket e configuramos acesso público, por domínio personalizado ou r2.dev
  3. Geramos um token de API para o PicGo se conectar
  4. Instalamos e configuramos o PicGo para upload de imagens em um clique
  5. Configuramos cache e segurança para deixar a hospedagem mais estável

A partir daqui, você não precisa mais se preocupar tanto com hospedagem apagando imagens, saindo do ar ou cobrando do nada. Ao escrever um post, basta arrastar a imagem para o PicGo, deixar ele enviar e gerar o link, e colar no Markdown. O fluxo fica bem fluido.

Sendo bem sincero, montar a hospedagem de imagens com R2 foi uma das melhores decisões que tomei nos últimos dois anos. A primeira configuração levou um tempo, principalmente por causa das armadilhas, mas depois ficou muito tranquilo. Hoje ela roda há mais de meio ano, armazena mais de 500 imagens, não custou um centavo e não me deu nenhum problema.

Se você também está sofrendo com hospedagem de imagens, vale muito testar o R2. Seguindo os passos deste artigo, dá para terminar em 30 minutos. Se algo falhar, não entre em pânico: na maioria dos casos, algum parâmetro foi preenchido errado. Revise com calma.

Ultimo lembrete: depois de configurar tudo, salve bem as chaves da API. Se um dia precisar reconfigurar ou trocar de computador, você usa as chaves antigas e evita gerar tudo de novo.

Agora é hora de montar sua própria hospedagem gratuita de imagens. Se tiver dúvidas, deixe um comentário; quando eu vir, respondo.

FAQ

Qual é a cota gratuita do Cloudflare R2?
A cota gratuita do R2 inclui:
• 10GB de armazenamento
• 1 milhão de uploads por mês (operações Classe A)
• 10 milhões de leituras por mês (operações Classe B)
• tráfego de saída totalmente gratuito

Um blog pessoal com 500 imagens ocupa menos de 2GB, então dá para usar por vários anos.

Custos depois de passar da cota:
• armazenamento: $0.015/GB/mês (cerca de poucos centavos por GB ao mês)
• operações: Class A $4.50 por milhão, Class B $0.36 por milhão
Quais vantagens o R2 tem em relação a outras opções de hospedagem de imagens?
Principais vantagens:
1) tráfego de saída totalmente gratuito (vs. S3 cobrando por GB), que é o maior diferencial
2) estabilidade de um provedor grande (Cloudflare é um dos maiores provedores de CDN do mundo)
3) compatibilidade com a API S3, facilitando migração futura
4) uso imediato, sem registro ICP local na China (serviço internacional, configurável em 30 minutos)
5) distribuição por CDN global (100+ países e 275 cidades)

Problemas de outras opções:
• GitHub + jsDelivr: bloqueado na China
• hospedagens públicas gratuitas: instáveis
• serviços em nuvem chineses: exigem registro ICP de domínio
Como configurar acesso público no R2?
Modo 1 (para testes):
• nas configurações do bucket, encontre o subdomínio R2.dev
• clique em Allow Access e digite allow para confirmar
• atenção: r2.dev tem limite de taxa de acesso; em produção, use domínio personalizado

Modo 2 (recomendado para produção):
• pré-requisito: o domínio já precisa estar gerenciado pela Cloudflare
• em Custom Domains, informe um subdomínio, como img.yourdomain.com
• a Cloudflare adiciona o registro CNAME automaticamente; depois e só aguardar o DNS propagar
Como configurar o PicGo para conectar ao R2?
Passos de instalação:
1. Instale o PicGo e um plugin S3 (picgo-plugin-s3 ou s3-lls)
2. Configure em Image Hosting Settings -> Amazon S3

Parametros principais:
• Access Key ID
• Secret Access Key
• Bucket Name
• caminho do arquivo, como {year}/{month}/{md5}.{extName}; não comece com /
• Endpoint personalizado, com https://
• domínio personalizado ou URL r2.dev
• Region, que pode ser algo como auto
• método de upload em Path Style

Depois que o upload de teste funcionar, já dá para usar no dia a dia.
Como otimizar desempenho e custo da hospedagem de imagens no R2?
Tecnicas de otimização:
1) Configure regras de cache:
• Console da Cloudflare -> Rules -> Cache Rules
• corresponda a img.yourdomain.com/*
• Edge Cache TTL de 6 meses e Browser Cache TTL de 1 mês
• em teste real, o número de requisições caiu de dezenas de milhares para alguns milhares

2) Desative o acesso r2.dev se já estiver usando domínio personalizado.

3) Configure uma regra WAF contra hotlink: bloqueie quando o Referer não contiver yourblog.com.

4) Monitore o uso periodicamente para evitar passar da cota.

Para acelerar acesso na China, Tencent Cloud EdgeOne ou WebP Cloud são opções.
Preciso vincular cartão de crédito para ativar o R2? Ele cobra automaticamente?
Não cobra automaticamente.

Para ativar o R2, você precisa vincular um cartão de crédito ou PayPal. Isso serve apenas para verificação de identidade, não para cobrança automática.

A cota gratuita da Cloudflare é realmente gratuita. Só há cobrança se você ultrapassar a cota de forma ativa e confirmar o pagamento.

Voce pode vincular:
• cartão de crédito internacional, como Visa ou MasterCard
• PayPal, inclusive em contas da China
• cartão virtual

No meu teste, usei por meio ano sem gerar nenhum custo.
Como resolver erros comuns de upload no PicGo?
Erros comuns e soluções:

1) Access Denied ou erro 403:
• confira se as chaves da API foram preenchidas corretamente, sem inverter os campos
• confirme se o token da API inclui permissão Object Read & Write
• confira se o nome do bucket está correto

2) A imagem sobe, mas não abre:
• confira se o acesso público foi ativado, via r2.dev ou domínio personalizado
• confira se o domínio personalizado foi preenchido com https://
• aguarde o DNS propagar

3) Upload lento ou timeout:
• pode ser rede, já que o R2 fica fora da China
• se a imagem for grande, comprima antes

4) Caminho do arquivo incorreto:
• confira se o caminho comeca com /; se comecar, remova a barra

Na maioria dos casos, o problema está em algum parâmetro preenchido errado. Vale revisar com calma.

19 min de leitura · Publicado em: 30 nov 2025 · Atualizado em: 14 jul 2026

Comentários

Entre com GitHub para comentar

Easton BlogEaston Blog