Comparativo de armazenamento
Backblaze B2 x Cloudflare R2 · 06/09/2026

Preço lido hoje na página oficial dos dois. O estado do nosso backup foi medido pela API da Backblaze, não estimado. Latência e velocidade de restauração foram cronometradas do nosso servidor em São Paulo.

Duas demandas, duas contas separadas

Backup e imagens do CRM têm perfil de acesso oposto. O backup grava muito e quase nunca lê. As imagens do CRM gravam pouco e são lidas o dia inteiro. Somar os dois numa conta só é o jeito mais rápido de escolher errado.

Medido Rodei aqui e cronometrei. É número, não estimativa.
Fonte oficial Li hoje na página da própria empresa. Link no fim.
Suposição Premissa minha pra fechar a conta. A fórmula está à vista.
Não apurei Procurei e não consegui confirmar. Fica em aberto.

A resposta

Se você parar de ler aqui, já dá pra decidir. O resto é a conta e a prova.

Backup
Grava a cada madrugada. Só é lido no pior dia.

Fica na Backblaze B2, do jeito que está.

Custa R$ 0,15 por mês hoje e não passa de R$ 6,60 nem no cenário mais pessimista de doze meses. O R2 faria a mesma coisa por mais que o dobro do preço por giga e, o que pesa muito mais, não tem chave só de escrita. Trocar seria pagar mais caro pra perder a única coisa que fez a gente escolher a B2 lá atrás.

Só que a proteção que a gente acha que tem não está ligada. Três coisas pra arrumar, todas dentro da B2, todas de graça. Estão na seção dos achados.

Imagens e PDFs do CRM
Grava pouco. É lido toda vez que alguém abre uma ficha.

Vai pro Cloudflare R2, e a razão não é preço.

Nesse volume os dois custam zero, e vão continuar custando zero por bastante tempo. O que separa é medida de rede: do nosso servidor em São Paulo, o primeiro byte da Cloudflare chega em 48 ms e o da B2 em 425 ms. Isso é sentido em cada foto que abre. Some a isso egress sem franquia e sem teto, cache no Brasil com uma caixinha marcada e o AdvisorZ já ter a camada de storage pronta pra receber outro provedor.

Um detalhe pesa mais que tudo isso junto e você precisa saber: hoje os arquivos do advisorx estão abertos na internet. Testei. Está na seção do CRM.

Vale unificar os dois num provedor só?

Não vale. O ganho de unificar seria uma fatura a menos e um painel a menos, e isso custa quase nada. O preço de unificar é alto dos dois lados: jogar o backup no R2 entrega a chave de leitura de tudo que a gente tem pra qualquer um que roube a credencial do servidor, e jogar as imagens na B2 põe cada leitura de ficha atravessando o continente e amarra a operação numa franquia que é uma razão, não um número fixo.

Cada carga fica onde é melhor. Duas credenciais, duas faturas que somadas não chegam a R$ 20 por mês.

Por que são contas diferentes

Mesmo tipo de produto, uso invertido. Isso é o eixo de tudo que vem depois.

Backup
Escrita
2.765 arquivos por madrugada, todo dia
Leitura
Uma vez, no dia em que algo quebrar
O que decide aqui é preço por giga guardado e quem consegue apagar. Egress é irrelevante porque quase nunca sai nada. Latência é irrelevante porque ninguém está esperando na frente da tela.
Imagens do CRM
Escrita
141 arquivos nos primeiros 6 dias de setembro
Leitura
Toda vez que alguém abre uma ficha
O que decide aqui é egress e tempo até a imagem aparecer. Preço por giga guardado é ruído, porque o acervo inteiro cabe na franquia grátis dos dois. Tem gente esperando a tela pintar.

Como ler a cor nesta página

Laranja é Backblaze B2, azul é Cloudflare R2. Onde uma seção inteira vem de uma cor só, é porque aquela demanda tem um vencedor claro. Não é decoração, é a resposta.

Preço oficial dos dois

Lido hoje, 06/09/2026, na página de preço da própria empresa. Link e horário no fim da página. Preço muda, então trate esta tabela como uma foto de hoje.

Backblaze B2USD · 06/09/2026
Armazenamento
$6,95 / TB / mês
É $0,00695 por giga. Os primeiros 10 GB são grátis pra sempre, não é promoção de entrada.
Egress até 3x o armazenado
grátis
A franquia é uma razão sobre a média do mês, não um número fixo. Com 14 GB guardados, dá 42 GB de saída grátis. Guardou menos, a franquia encolhe junto.
Egress acima da franquia
$0,01 / GB
Saída roteada pela Cloudflare não conta e é ilimitada, pelo acordo de banda entre as duas empresas.
Classe A · gravação
grátis
Classe B · leitura
grátis
Classe C · listar, copiar, administrar
grátis
Classe D · notificação de evento
$0,004 / 10 mil
2.500 chamadas por dia são grátis. É a única classe que cobra, e a gente não usa.
Mínimo de tamanho de arquivo
nenhum
Mínimo de tempo guardado
nenhum
Subiu e apagou uma hora depois, não cobra multa. Vale citar porque quase todo concorrente cobra 30 ou 90 dias mínimos.
Cloudflare R2USD · 06/09/2026
Armazenamento padrão
$0,015 / GB / mês
Dá $15,36 por TB. Duas vezes e pouco o preço da B2 no mesmo giga.
Armazenamento de acesso raro
$0,010 / GB / mês
Tem 30 dias de permanência mínima e cobra $0,01 por giga lido de volta. Não serve pro CRM, que lê o tempo todo.
Egress
$0, sempre
Sem franquia, sem razão, sem teto. É o motivo de existir do produto.
Classe A · gravar, listar
$4,50 / milhão
1 milhão por mês grátis. No acesso raro dobra pra $9,00.
Classe B · ler
$0,36 / milhão
10 milhões por mês grátis. No acesso raro sobe pra $0,90.
Franquia mensal
10 GB
Mais 1 milhão de operações de classe A e 10 milhões de classe B. Só vale no armazenamento padrão.

Uma correção antes de você fazer conta de cabeça

A B2 está anunciando $6,95 por TB hoje. O número que a casa vinha usando, $6,00 por TB, é de uma tabela antiga. A diferença é pequena aqui porque o volume é pequeno, mas quem for calcular terabyte precisa usar o valor de hoje.

Câmbio usado em toda conta desta página

R$ 5,13 por dólar. É a PTAX de venda do Banco Central de 04/09/2026, o último fechamento disponível. Câmbio mexe todo dia, então trate todo valor em real como aproximado. Se o dólar for pra R$ 6,00, some 17% em cima de tudo, e nenhuma decisão desta página muda por causa disso.

Demanda 1: backup

Tudo desta seção saiu da API nativa da Backblaze e do cronômetro, hoje. Nada aqui é estimativa.

Estado do bucket mari-backup-FernandoPaes, lido em 06/09/2026 pela API da Backblaze. Medido
Primeiro arquivo do bucket04/06/2026, 20h00
Versão corrente11,449 GB · 60.711 objetos
Todas as versões, que é o que a B2 cobra14,097 GB · 68.891 entradas
Peso morto de versões antigas2,648 GB · 3.209 marcadores
Última rodada do cron06/09, 03h08 · 492 s · sem falha
Frequência real do backup1x por dia, 03h00 BRT

Ajuste no que a gente vinha repetindo: o cron roda uma vez por dia, não de 3 em 3 horas. Está no crontab como 0 6 * * *, que é 03h00 no nosso fuso. E cada rodada não são 112 MB, são cerca de 145 MB só nos dumps de banco, mais a sincronia dos diretórios.

Quanto o bucket engordou, mês a mês
Bytes gravados por mês desde que o backup nasceu. Setembro está riscado porque tem só 6 dias corridos.
0,34 6,64 4,13 2,98 jun jul ago set 6 dias

Em gigabytes gravados. Julho é o mês em que a sincronia dos diretórios entrou e subiu 56 mil objetos de uma vez. Agosto fechou em 4,13 GB. Setembro está em 2,98 GB com 6 dias, o que projeta perto de 15 GB no mês se o ritmo continuar. É a faixa que uso nos cenários abaixo: de 4 a 15 GB por mês.

Custo mensal do backup nos três momentos. Fórmula à vista: (GB no bucket menos 10 de franquia) x preço do giga x 5,13.
MomentoNo bucketB2R2
Hoje, medido14,1 GBR$ 0,15R$ 0,32
6 meses no ritmo de agosto38,7 GBR$ 1,02R$ 2,21
6 meses no ritmo de setembro104,1 GBR$ 3,36R$ 7,24
12 meses no ritmo de agosto63,3 GBR$ 1,90R$ 4,10
12 meses no ritmo de setembro194,1 GBR$ 6,56R$ 14,17

Operação não entra na conta em nenhum dos dois. Na B2 gravar, ler e listar são grátis por política. No R2, a sincronia diária faz algo perto de 26 mil operações de classe A por mês, e a franquia é de 1 milhão. Nenhum dos dois cobra por isso no nosso volume.

Arraste e veja onde a diferença começa a doer

Se o backup crescer, quanto fica. Preço de tabela dos dois, câmbio de R$ 5,13.

Backblaze B2
R$ 0,15por mês
Cloudflare R2
R$ 0,32por mês
Diferença por mês: R$ 0,17 Diferença em um ano: R$ 2,02
Onde estamos hoje. Nesse volume os dois são troco de café e o preço não decide nada.

O que decide de verdade, e não é preço

Backup só tem um dia importante, que é o dia em que você precisa dele. Tudo que interessa é: alguém consegue destruir, e quanto tempo leva pra voltar.

Comparação de proteção. Lido na documentação oficial dos dois em 06/09/2026. Fonte oficial
ProteçãoBackblaze B2Cloudflare R2
Chave só de escrita Tem Não tem
A B2 monta a chave escolhendo capacidade por capacidade: dá pra pedir writeFiles sem readFiles e sem deleteFiles. O R2 só oferece quatro níveis prontos, e o menos poderoso que grava é "Objeto: ler e gravar", que também apaga e lê tudo.
Chave amarrada a um pedaço do bucket Por prefixo de nome Só por bucket inteiro
Chave com prazo de validade Até 1.000 dias Tem
Imutabilidade contra ransomware Object Lock, modo governança ou conformidade Bucket lock, até mil regras
Os dois travam apagar e sobrescrever por um prazo. A B2 separa governança, que um administrador consegue derrubar, de conformidade, que ninguém derruba. A documentação do R2 não faz essa separação.
Versionamento Ligado por padrão, sempre Ligado por padrão
Poda automática de versão velha Regra de ciclo de vida Regra de ciclo de vida
Custo de restaurar tudo R$ 0 R$ 0
Aqui a franquia da B2 é generosa justamente pra backup: ela dá 3x o que você guarda, e uma restauração completa consome no máximo 1x. Só passaria da franquia quem baixasse o acervo inteiro três vezes no mesmo mês.

Quanto tempo leva pra voltar, cronometrado agora

Baixei do bucket, do nosso servidor, com a rede de hoje:

  • O dump do mari_memory, 122,8 MB, veio em 15,3 segundos numa conexão só. Dá 8,0 MB por segundo.
  • Os 12 dumps da noite passada, 145 MB, vieram em 14,7 segundos com 8 conexões. Dá 9,9 MB por segundo.

No ritmo medido, puxar os 11,4 GB inteiros do bucket levaria perto de 20 minutos. Restaurar só os bancos, que é o cenário real de emergência, leva 15 segundos de download. Isso responde a pergunta que só importa no pior dia: a B2 não é o gargalo.

Três achados no nosso backup

Não estava no pedido, mas apareceu enquanto eu media o bucket pra fazer a conta. Nenhum deles é motivo pra trocar de provedor. Todos são de graça pra arrumar e valem mais que a diferença de preço da página inteira.

1. A chave do servidor não é só de escrita

A gente vem repetindo que "o servidor escreve mas não apaga". Hoje isso não é verdade. Perguntei pra própria API da Backblaze o que a chave que está no servidor pode fazer, e ela respondeu com a lista completa:

  • writeFiles, readFiles e deleteFiles: grava, lê e apaga qualquer arquivo do bucket.
  • writeBuckets e writeBucketLifecycleRules: muda a configuração do bucket.
  • shareFiles: gera link de download pra fora.

Quem entrar no servidor lê o backup inteiro e depois apaga. E não é descuido de quem criou a chave: o próprio backup.sh precisa de deleteFiles, porque a etapa 5 aplica a retenção com rclone delete. A regra de retenção do jeito que está escrita obriga a chave a ser poderosa.

E é aqui que o R2 perde a discussão de segurança sem apelação: no R2 não existe chave só de escrita. A menos poderosa que grava também lê e apaga. O que a gente tem hoje na B2 por acidente, no R2 seria o teto do que dá pra fazer.

2. Nada poda as versões velhas

O bucket está com a lista de regras de ciclo de vida vazia. Como a B2 guarda toda versão de todo arquivo, e o rclone sync apenas esconde o que sumiu do servidor em vez de apagar, o lixo fica lá pra sempre.

O tamanho disso agora: 2,648 GB de versões escondidas e 3.209 marcadores. É 19% do bucket, e a fração cresce todo mês. A retenção de 30 dias que a gente acha que tem está apagando o que o rclone enxerga, e o rclone não enxerga versão antiga.

3. Não consegui ler se o Object Lock está ligado Não apurei

A API devolveu isClientAuthorizedToRead: false pra configuração de trava do bucket, ou seja a chave não tem permissão de ler esse campo. O valor voltou nulo, o que sugere que está desligado, mas sugerir não é saber. Precisa abrir o painel da Backblaze e olhar.

Na mesma leitura veio que a criptografia padrão do bucket está sem algoritmo definido, ou seja o SSE do lado da B2 não está configurado.

Como fechar os três, sem sair da B2

  1. Passar a retenção pro lado da Backblaze
    Criar uma regra de ciclo de vida no bucket com daysFromUploadingToHiding: 30 e daysFromHidingToDeleting: 1 no prefixo db/daily/, e só daysFromHidingToDeleting: 7 no resto. A B2 poda sozinha, do lado dela, e os 2,6 GB de lixo somem.
  2. Tirar o rclone delete do script
    Com a regra do passo 1 no ar, a etapa 5 do backup.sh perde a razão de existir. E é ela que obriga a chave a ter poder de apagar.
  3. Trocar por duas chaves
    Uma no servidor com writeFiles e listFiles apenas: grava, não lê, não apaga. Outra completa, guardada fora do servidor, usada só na restauração. Quem invadir o servidor consegue no máximo sujar o bucket com arquivo novo, e nunca ler nem destruir o que já está lá.
  4. Ligar Object Lock em governança no prefixo dos bancos
    30 dias. Aí nem a chave completa apaga um dump dentro da janela, e a gente ganha proteção real contra ransomware em vez de proteção no papel.

Custo disso: zero em dinheiro. Umas duas horas de trabalho, quase tudo em configuração de bucket. Me dá o play e eu faço.

Demanda 2: imagens e PDFs do CRM

Fui atrás do que existe de verdade hoje, nos três lugares onde a casa guarda arquivo de cliente, antes de projetar qualquer coisa.

O que está guardado hoje, medido com du e contagem por extensão em 06/09/2026. Medido
OndeTamanhoArquivosMédia
advisorx legado, no compartilhado
imagens, planilhas, documentos de aprovação
720 MB2.955250 KB
crm-summit, na VPS
mídia que o cliente manda no WhatsApp
167,6 MB595288 KB
bancada-30, na VPS
antecessor do crm-summit, congelado em 19/08
337,1 MB378913 KB
AdvisorZ, na VPS
a camada de storage existe, o balde está vazio
00nenhum

Percentis do que está ativo: o menor arquivo tem 164 bytes, a mediana é 383 KB, 90% cabem em 568 KB e o maior tem 3,22 MB. Arquivo pequeno em quantidade grande, que é o perfil em que operação pesa mais que armazenamento.

Os 500 MB que você citou batem, e sei de onde vêm

Somando os dois lugares onde entra arquivo de cliente de verdade, bancada-30 com 337,1 MB e crm-summit com 167,6 MB, dá 504,7 MB. Um é a continuação do outro, os dois juntos cobrem o período que você descreveu. O número que você deu de cabeça estava certo.

Detalhe que muda a projeção: os 720 MB do advisorx legado não são desses dois meses. São de três anos, e estão praticamente parados: 125 arquivos em novembro de 2025, 19 em agosto de 2026. O legado morreu. Quem cresce é a mídia de WhatsApp.

A projeção, com a fórmula à mostra

Você projeta crescimento com 20 usuários. Eu não sei quantas pessoas operam o CRM hoje, então não invento o multiplicador: deixo ele à vista e você ajusta.

Ritmo de entrada hoje, medido nos primeiros 6 dias de setembro.
Arquivos novos no crm-summit141 em 6 dias
Tamanho médio medido288,5 KB
Entrada hoje~204 MB por mês
Mais o legado, que quase não anda~5 MB por mês
Total de hoje~210 MB por mês

A conta pra frente é 210 MB x (20 ÷ N), onde N é quantas pessoas usam o CRM hoje. Se hoje são 2 pessoas, 20 usuários multiplicam por 10 e dão 2,1 GB por mês. Se são 4, multiplicam por 5 e dão 1,05 GB. Se são 8, multiplicam por 2,5 e dão 525 MB. Nas tabelas abaixo trabalho com 4 pessoas hoje, ou seja 5 vezes mais. Suposição Me diga o número e eu refaço em dois minutos.

Custo mensal das imagens do CRM. Acervo inicial de 888 MB, que é o legado mais o crm-summit ativo. A bancada congelada ficou de fora porque provavelmente é descartável.
MomentoAcervoB2R2
Hoje0,89 GBR$ 0R$ 0
6 meses com 20 usuários7,2 GBR$ 0R$ 0
12 meses com 20 usuários13,5 GBR$ 0,13R$ 0,27

Nos dois primeiros momentos o acervo inteiro cabe nos 10 GB de franquia grátis que os dois dão. Não é desconto de novato, é franquia permanente. Leitura, gravação e saída também ficam dentro das franquias em todos os três cenários, nos dois provedores. Preço não decide esta demanda. Não é que decide pouco: não decide nada.

Sua calculadora

Mexa nos três controles e veja a conta se refazer. Se estourar a franquia de saída da B2, eu aviso aqui embaixo.

Backblaze B2
R$ 0,11por mês, no 12º mês
Cloudflare R2
R$ 0,24por mês, no 12º mês
Entra por mês: 1,0 GB Acervo no 12º mês: 13,1 GB Saída por mês: 6,1 GB Franquia grátis da B2: 39,2 GB
Folga confortável na franquia da B2. Os dois cobram zero.
Tempo até o primeiro byte, medido do nosso servidor
Três tentativas em cada endereço, do servidor em São Paulo, hoje. É o tempo que a rede leva antes do primeiro pedaço do arquivo começar a chegar.
Borda da Cloudflare, São Paulo48 ms
Conexão em 4 ms. É a rede que o R2 usa quando o balde tem domínio próprio.
B2 us-east-005, Virgínia
a região do nosso bucket
425 ms
Conexão em 120 ms. Nove vezes o tempo da borda da Cloudflare.
B2 us-west-004, Califórnia574 ms
Conexão em 181 ms. Entra só como referência, não é onde nosso bucket vive.

A Backblaze não tem data center na América do Sul. Os deles ficam na Califórnia, no Arizona, na Virgínia, em Amsterdã e em Toronto. Não é escolha nossa, é o mapa deles. A Cloudflare termina a conexão na borda de São Paulo e o pedido segue pela rede interna dela.

Uma ressalva que precisa entrar, senão o número acima engana

Dá pra pôr a B2 atrás da Cloudflare, e existe um acordo entre as duas empresas que zera o custo de saída nesse caminho. Com o arquivo já em cache na borda de São Paulo, a segunda leitura em diante fica igual: perto de 50 ms nos dois.

A diferença sobra em três lugares que não somem: a primeira leitura de cada arquivo, que atravessa o continente de qualquer jeito, toda gravação, porque upload nunca é servido de cache, e o trabalho de montar isso. No R2 é uma caixinha de domínio próprio no painel. Na B2, como o bucket é privado, é preciso um Worker assinando cada pedido, e isso vira código nosso pra manter.

O resto do que decide

Preço empatou em zero e latência já foi. Sobram estes.

Recursos que o CRM precisa. Lido na documentação dos dois em 06/09/2026.
O que precisamosBackblaze B2Cloudflare R2
EgressGrátis até 3x o guardado, depois $0,01/GB. Ilimitado se passar pela Cloudflare.Zero, sem franquia e sem teto.
Link temporário assinadoSim. Autorização de download com validade de até 7 dias, e dá pra amarrar num prefixo de nome. Também aceita link assinado no padrão S3.Sim, link assinado no padrão S3. E dá pra proteger o domínio próprio com WAF e com o Access.
CORSRegra por bucket.Regra por bucket.
Upload direto do navegadorSim, com link assinado.Sim, com link assinado, e dá pra pôr um Worker no caminho pra validar antes de aceitar.
Servir por domínio nosso com cache no BrasilSó com um Worker nosso assinando cada pedido, porque o bucket é privado.Uma caixinha no painel. O cache da Cloudflare entra junto.
Tamanho máximo de arquivoNão apurei o teto exato. Não apurei5 TiB por objeto, 5 GiB por envio de uma vez, uma escrita por segundo no mesmo nome.
Encaixe no que já temosJá está montado e provado no backup, com o único remote do rclone configurado.O AdvisorZ já tem a camada pronta pra receber outro provedor, e o próprio .env.example dele cita o R2.

O teto de tamanho não muda nada na prática: o maior arquivo que temos hoje tem 3,22 MB e o AdvisorZ já corta em 10 MB por arquivo, com lista fechada de tipos aceitos. Nenhum dos dois provedores chega perto de ser o limite.

De onde sai e onde entra o arquivo, hoje

São três caminhos diferentes e eles não têm o mesmo custo de mudar:

  • AdvisorZ já tem a troca pronta. Existe uma camada de storage com dois motores atrás da mesma interface, link assinado próprio com validade de uma hora, corte em 10 MB e lista fechada de tipos. Escrever o motor do R2 e virar a chave é trabalho pequeno, e o balde está vazio, então não tem nada pra migrar. Fazer agora é barato. Fazer depois de encher, não.
  • crm-summit grava direto no disco, com open(), sem camada nenhuma no meio. Mover ele pra armazenamento de objeto é reforma de verdade, não é trocar uma variável.
  • advisorx legado é PHP 7.4 no compartilhado, gravando com move_uploaded_file na pasta pública. Não vale reformar um sistema que está sendo substituído.

Isto aqui é mais urgente que escolher provedor

Os arquivos que os clientes mandaram pro advisorx são servidos direto da pasta pública do site, sem nenhuma autenticação. Peguei o nome de um arquivo real e baixei ele com um comando simples, sem sessão e sem login: voltou 200 e a imagem inteira. Listar a pasta dá erro, então a única coisa protegendo é o nome do arquivo ser um md5 difícil de adivinhar.

Isso é o mesmo padrão das 980 fotos expostas que a gente já tinha registrado. E é exatamente o problema que armazenamento de objeto com bucket privado e link assinado com validade resolve de nascença, nos dois provedores. Ou seja: a mudança que você está avaliando por causa de custo tem um benefício maior do lado da segurança, e ele vale mais que a conta inteira desta página.

A pergunta em aberto

Perguntei se os arquivos precisam abrir direto pro cliente ou se só a equipe vê por dentro do sistema. Não travei esperando, então tratei os dois casos. Ela muda o peso, não a escolha.

Se só a equipe vê, por dentro do sistema
Volume de leitura previsível, preso ao número de pessoas

A leitura fica amarrada em 20 pessoas trabalhando em horário comercial. Nesse mundo, a franquia de saída da B2 nunca aperta: pra estourar, cada uma das 20 pessoas teria que abrir mais de 300 arquivos por dia, todo dia útil. Não acontece.

Aí o R2 ganha por conforto, não por necessidade: o domínio próprio com cache é uma caixinha marcada em vez de um Worker escrito à mão, e a tela pinta mais rápido pra quem está atendendo. A diferença é de qualidade de trabalho, e a decisão continua sendo a mesma.

Se o cliente abre pelo link, no navegador dele
Volume de leitura solta do número de usuários

Muda de figura. Um link mandado no WhatsApp é buscado por todo mundo que abre a conversa, e ainda pelo robô que gera a pré-visualização. A leitura para de acompanhar o tamanho do acervo, e é exatamente aí que a franquia da B2 aperta, porque ela é uma razão sobre o que você guarda: acervo pequeno com muita leitura é o pior caso dela.

Some a isso o cliente sendo quem espera a página abrir, com 425 ms de rede antes de qualquer byte. E que link pra cliente precisa de validade curta, de bucket privado e de poder cortar acesso depois. Nesse mundo o R2 deixa de ser conforto e vira o certo.

Como isso muda o que eu recomendo

Em nenhum dos dois casos eu mudaria a resposta. Se for só interno, o R2 ganha por margem confortável. Se o cliente abre direto, ganha sem discussão. Por isso mandei a análise em vez de segurar esperando você responder.

A resposta ainda importa, mas pra outra decisão: quanto tempo o link fica válido e se o arquivo passa por uma checagem de permissão antes de ser entregue. Isso é desenho de sistema, não escolha de provedor.

Quando o preço vira conversa

Você pediu o limiar. Aqui está, com a conta aberta.

Armazenamento: a partir de 250 GB

  • A diferença por giga guardado é de R$ 0,041 por mês. Precisa de 250 GB no bucket pra essa diferença virar R$ 10 por mês.
  • Em 1 TB a conta fica em R$ 36 na B2 contra R$ 78 no R2, uma diferença de R$ 42 por mês. É a partir daí que a escolha vira decisão de dinheiro e não de gosto.
  • No ritmo mais acelerado que já medi no nosso backup, 15 GB por mês, chegar em 1 TB leva mais de cinco anos.
O que isso significa: o backup pode ficar onde está por anos sem que ninguém precise reabrir essa conversa.

Saída da B2: quando a leitura passa de 3x o acervo

  • É uma razão, não um número: guardando 13,5 GB, você tem 40,5 GB de saída grátis por mês.
  • Traduzindo pro nosso arquivo médio de 288 KB, isso dá 140 mil aberturas por mês, ou 6.400 por dia útil, ou 320 por pessoa por dia se forem 20 pessoas.
  • Pra saída passar de R$ 100 por mês, precisaria de quase 2 TB de leitura excedente.
O que isso significa: equipe interna nunca chega perto. O único jeito de estourar é link aberto pelo cliente lá fora, que é justamente a pergunta que ficou em aberto.

Operação no R2: a pegadinha invertida

  • No R2 gravar e listar custam $4,50 por milhão, com 1 milhão grátis por mês. Cada milhão a mais dá R$ 23.
  • Nossa sincronia diária faz algo perto de 26 mil operações dessas por mês. Cabe folgado.
  • Mas o nosso perfil é muito arquivo pequeno, mediana de 383 KB. Nesse perfil, se o volume multiplicar, a conta do R2 é puxada por operação e não por giga. Na B2 isso não existe, porque lá operação é grátis por política.
O que isso significa: se um dia a gente jogar milhões de arquivinhos no R2, o item mais caro da fatura não vai ser o armazenamento. Vale saber antes, não depois.

Custo de migrar

Recomendo trocar em uma das duas demandas. Aqui está o que cada mudança custa de trabalho e de risco.

Backup: não migrar

  • Se fosse migrar, seriam 68.891 objetos e 14,1 GB. Baixar da B2 sai de graça, porque cabe na franquia. Umas poucas horas de transferência, mais mudar duas linhas no backup.sh, mais uma restauração de teste pra provar que voltou inteiro. Chuto 4 horas de trabalho.
  • O que quebraria: durante a janela, dois destinos vivos ao mesmo tempo, e a retenção precisa ser refeita do zero no destino novo.
  • O que a gente perderia pra sempre: a chave só de escrita, que é a única razão pela qual escolhemos a B2 lá atrás e que o R2 não tem.
Conclusão: pagar mais caro por giga, gastar meio dia e perder a proteção. Não tem nenhum lado ganhando. Fica.

Imagens do CRM: não é migração, é começar certo

  • AdvisorZ: o balde está vazio, então não existe migração. É escrever um motor novo atrás de uma interface que já existe e virar uma variável. Meio dia de trabalho, incluindo teste. Risco baixo, porque o motor antigo continua lá pra voltar atrás.
  • crm-summit: aí sim é reforma, porque ele grava direto no disco sem camada nenhuma. Se um dia for movido, são 595 arquivos e 168 MB, transferência de minutos, mas o trabalho é no código. Não recomendo fazer agora, e sim quando o AdvisorZ absorver essa função.
  • advisorx legado: não mexer. É PHP 7.4 num compartilhado, prestes a ser substituído. Reformar sistema em fim de vida é dinheiro jogado fora.
Conclusão: a hora de decidir isso é agora, justamente porque não tem nada pra migrar. Cada mês que passa com o AdvisorZ enchendo o balde antigo, essa troca fica mais cara.

Pegadinhas dos dois

O que a página de preço não conta na primeira leitura.

Backblaze B2

  • Saída grátis é uma razão, não um teto. São 3x a média do que você guardou no mês. Bucket pequeno com leitura pesada é o pior caso dela, e é exatamente o formato de uma galeria de imagens que bomba.
  • Versionamento é sempre ligado e não tem como desligar. Sem regra de ciclo de vida, versão velha fica pra sempre e você paga por ela. Isso já está acontecendo com a gente: 2,6 GB de lixo, 19% do bucket.
  • rclone sync não apaga, esconde. A versão continua ocupando espaço e sendo cobrada. Quem olha a listagem normal não vê e acha que a retenção funcionou.
  • Não tem data center na América do Sul. Califórnia, Arizona, Virgínia, Amsterdã e Toronto. Toda leitura atravessa o continente.
  • Sair custa, se o destino não for a Cloudflare. Acima da franquia, $0,01 por giga. Com 1 TB de acervo, sair pela internet aberta seria perto de R$ 50. Não é armadilha, mas é bom saber.
  • O acordo de banda com a Cloudflare não tem prazo publicado. Está na página de parceria da Cloudflare como benefício vigente, sem data e sem letra miúda visível. Se a gente construir uma arquitetura que depende dele, está apostando numa coisa que nenhuma das duas empresas prometeu manter.
  • A favor: não cobra tamanho mínimo de arquivo nem tempo mínimo guardado. Quase todo concorrente cobra 30 ou 90 dias. Isso vale muito pra backup com rotação curta.

Cloudflare R2

  • Não existe chave só de escrita. A permissão menos poderosa que grava também lê e apaga tudo do balde. Pra backup isso é eliminatório.
  • Operação pode custar mais que armazenamento no perfil de muitos arquivos pequenos. Gravar e listar custam $4,50 por milhão depois da franquia.
  • O endereço de teste r2.dev tem limite de taxa e a própria documentação diz que não serve pra produção. Domínio próprio não é opcional.
  • O armazenamento de acesso raro tem armadilha dupla: 30 dias de permanência mínima e cobrança de $0,01 por giga pra ler de volta. Parece mais barato e não é, se o arquivo for lido.
  • Uma escrita por segundo no mesmo nome de objeto. Não é problema nosso, mas quem escrever código em cima precisa saber.
  • A borda fica no Brasil, o balde não. Não achei local de armazenamento na América do Sul. Leitura em cache é rápida, leitura fria vai buscar longe. Não medi o quanto isso custa em milissegundos.
  • A favor, e é forte: sair do R2 é grátis, porque saída é sempre zero. Nenhum outro provedor grande consegue dizer isso. É o melhor argumento contra ficar preso.

O que não consegui apurar

Buracos honestos. Nenhum deles muda a recomendação, mas você precisa saber que existem.

  1. Se o Object Lock está ligado no nosso bucket
    A chave não tem permissão pra ler esse campo. Só olhando o painel da Backblaze.
  2. Quantas pessoas operam o CRM hoje
    É o multiplicador da projeção inteira. Trabalhei com 4 pessoas, que é chute meu. Me diga o número certo e a conta se refaz.
  3. O volume real de leitura das imagens
    Precisaria do log do servidor web com acesso de administrador, ou de consulta na tabela de mensagens do CRM, e não tenho permissão em nenhum dos dois. É justamente onde os dois provedores mais divergem, então toda conta de saída desta página vem de fórmula, não de medição. Suposição
  4. Se a franquia de saída da B2 é por conta ou por balde
    A página de preço fala em "3x o seu armazenamento médio mensal" sem dizer o escopo. Faz diferença se um dia a gente tiver dois baldes com perfis diferentes.
  5. O tamanho máximo de arquivo na B2
    Não achei o número na documentação que li. Irrelevante pra nós, porque o maior arquivo que temos tem 3,22 MB.
  6. Se a ferramenta de migração da Cloudflare cobra
    A documentação confirma que ela puxa da B2, mas não diz o preço. Só importa se um dia a decisão do backup mudar.
  7. A cota de disco do plano do advisorx
    O comando mostra o disco compartilhado inteiro, não a nossa conta. Só no painel da Hostinger. Importa pra saber quanto tempo ainda cabe arquivo lá dentro.

Fontes

Tudo lido em 06/09/2026. Câmbio de 04/09/2026, que é o último fechamento do Banco Central.

O que foi medido aqui dentro, e não lido de fora

  • Estado do bucket, versões, marcadores e histórico mês a mês: API nativa da Backblaze, 06/09/2026.
  • Latência e tempo até o primeiro byte: curl do nosso servidor, três tentativas por endereço.
  • Velocidade de restauração: download de verdade de 122,8 MB e depois dos 12 dumps da noite passada, cronometrado.
  • Volume, contagem e média dos arquivos do CRM: du e contagem por extensão nos três lugares.
  • Comportamento do upload e dos limites: leitura do código do advisorx, do AdvisorZ e do crm-summit.