Comparação detalhada de limites de upload, preços e características de 10 serviços de armazenamento em nuvem | S3/GCS/Azure/R2
Ao escolher um serviço de armazenamento em nuvem, o limite de upload único, suporte a upload multipartes, camada gratuita, preço e custo de egresso (transferência) são pontos de comparação importantes. Embora o AWS S3 seja o padrão de facto da indústria, existem opções mais adequadas dependendo do custo, entrega nas bordas e casos de uso específicos. Este artigo resume as especificações dos 10 principais serviços e recomendações por caso de uso.
Tabela de comparação: limite de upload único, limite de multipartes, camada gratuita
| Serviço | Limite individual | Limite de multipart | Plano gratuito | Estimativa mensal (100GB) |
|---|---|---|---|---|
| AWS S3 | 5 GB | 5 TB | 5GB · 2.000 requisições/mês (12 meses) | $2.30〜 |
| Google Cloud Storage | 5 TB (objeto único) | 5 TB | 5GB (Standard, Leste dos EUA) | $2.00〜 |
| Azure Blob Storage | Bloco: 4.75TB, Página: 8TB | 195GB/bloco × 50.000 blocos | 5GB por 12 meses (LRS) | $1.84〜 |
| Cloudflare R2 | 5 GB | 5 TB | 10GB/mês · 1 milhão de operações/mês (perpétuo) | $1.50 (egresso gratuito) |
| Backblaze B2 | 5 GB | 10 TB | 10GB (perpétuo) | $0.60〜 |
| DigitalOcean Spaces | 5 GB | 5 TB | 250GB + 1TB de transferência/mês ($5~) | $5 (incluso até 250GB) |
| Wasabi | 1 TB | 1 TB | Nenhum (somente versão de teste) | $0.68 (egresso gratuito) |
| MinIO | 5 TB (dependente da implementação) | 5 TB | Auto-hospedagem (ilimitado) | Apenas custos de infraestrutura |
| Firebase Storage | Praticamente ilimitado (usando GCS) | Conformidade com GCS | 5GB (plano Spark) | $0.026/GB〜 |
| Supabase Storage | 50MB(Free)/ 50GB(Pro) | Suportado em Pro ou superior | 1GB (plano Free) | $0.021/GB(Pro) |
※Os valores são uma estimativa a partir de abril de 2026. Variam dependendo da região, classe de armazenamento e volume de uso. A maioria dos custos de egresso (transferência de dados) não está incluída na tabela acima.
Características de cada serviço e como escolher
AWS S3
O padrão de fato para armazenamento em nuvem. Muitos serviços implementam a API compatível com S3, e o ecossistema de bibliotecas e ferramentas é o mais rico. O upload multipartes pode ser automatizado com <code>aws-sdk</code>, e você pode fazer upload de objetos de até 5 TB com tamanho mínimo de chunk de 5 MB e máximo de 10.000 partes. A integração com CloudFront também facilita a entrega nas extremidades. No entanto, o custo de egresso é alto (a partir de $0,09/GB), e para serviços com grande transferência de dados, o custo é uma questão.
Google Cloud Storage(GCS)
Com um limite de 5TB por objeto, é adequado para casos de uso onde você deseja gerenciar arquivos grandes como um único objeto. Sua força é a integração perfeita com serviços GCP como BigQuery e Vertex AI, sendo a primeira opção ao construir pipelines de análise de dados. Os custos de transferência tendem a ser ligeiramente menores que S3.
Azure Blob Storage
Alta compatibilidade com o ecossistema Microsoft (Office 365, Active Directory, Azure Functions, etc.), com recursos de autenticação e conformidade robustos para empresas. Block BLOB suporta objetos de até 4.75TB, e Page BLOB (para discos virtuais) suporta até 8TB. Otimize custos com os tiers Hot, Cool e Archive.
Cloudflare R2
A principal característica é que o custo de egresso é gratuito. Como adota a API compatível com S3, você pode usar clientes S3 existentes praticamente sem alterações. A integração com Workers (computação de borda) é poderosa, permitindo uma arquitetura que manipula armazenamento diretamente na borda. Com uma camada gratuita permanente de 10GB/mês, é ideal como ponto de partida para desenvolvimento pessoal e serviços em pequena escala.
Backblaze B2
Com preços entre os mais baratos do setor ($0.006/GB/mês), é adequado para fins de backup e arquivamento de mídia com foco em custos. A combinação com a 「Bandwidth Alliance」 do Cloudflare, que torna o egresso do B2 para o Cloudflare gratuito, é popular. Fornece uma API compatível com S3, facilitando a migração.
DigitalOcean Spaces
A partir de $5/mês, oferece um plano fixo que inclui 250GB de armazenamento + 1TB de largura de banda. A vantagem é que facilita a previsão de orçamento para serviços pequenos. CDN incluído como padrão com configuração simples. Transferências são gratuitas quando usadas no mesmo região que DigitalOcean Droplets (máquinas virtuais).
Wasabi
Compatível com S3 e com saída gratuita (ao baixar diretamente do Wasabi), com taxas de armazenamento econômicas ($0.0068/GB/mês). No entanto, é importante observar que há uma regra de período mínimo de retenção que cobra 90 dias de taxa mesmo para dados excluídos dentro de 90 dias após o armazenamento. É adequado para backup e armazenamento de longo prazo de dados frios.
MinIO
Armazenamento de objetos compatível com S3 de código aberto que pode ser auto-hospedado em ambientes locais ou nuvem privada. Possui alta compatibilidade com Kubernetes e gráficos Helm são fornecidos oficialmente. É utilizado para fins de desenvolvimento e teste em indústrias regulatórias que não desejam colocar dados na nuvem e em ambientes locais.
Firebase Storage
Usa GCS internamente, e o upload direto de aplicativos móveis/Web usando Firebase SDK pode ser facilmente implementado. Seu ponto forte é o controle de acesso granular (Security Rules) integrado com Firebase Authentication. No entanto, no plano Spark (gratuito), o limite de arquivo único pode estar definido como praticamente baixo em alguns casos.
Supabase Storage
Funcionalidade de armazenamento do Supabase, um BaaS (Backend as a Service) baseado em PostgreSQL. Seu diferencial é o controle de acesso baseado em RLS (Row Level Security) integrado com o Supabase Auth. O plano Free tem um limite de tamanho de arquivo baixo (50MB), portanto, para arquivos grandes é necessário o plano Pro (50GB/arquivo) ou superior.
Recomendações por uso
| Uso | Primeira opção | Razão |
|---|---|---|
| Ponto de partida para SaaS de pequena escala | Cloudflare R2 | Egresso gratuito, camada gratuita permanente, compatível com S3 |
| Arquivo de mídia de grande volume | Backblaze B2 + Cloudflare | Combinação de armazenamento mais barato + saída gratuita |
| Entrega de borda e implantação global | Cloudflare R2 / AWS S3 + CloudFront | Integração de CDN・Entrega de baixa latência |
| Priorizar custo | Wasabi / Backblaze B2 | Taxas de armazenamento entre as mais baratas do setor |
| Conformidade empresarial | AWS S3 / Azure Blob | Recursos abrangentes de autenticação, criptografia e auditoria |
| Upload Direto de Aplicativo Móvel | Firebase Storage / Supabase Storage | Integração fácil de SDK e autenticação |
| Cloud privada on-premises | MinIO | S3 compatível, auto-hospedado, OSS |
| Integração com serviços GCP | Google Cloud Storage | Integração perfeita com BigQuery e Vertex AI |
O que é upload multipart
O multipart upload é o mecanismo que divide arquivos grandes em partes pequenas e faz upload em paralelo. No S3, é recomendado para arquivos maiores que 100MB e obrigatório para arquivos maiores que 5GB. Os principais benefícios são os seguintes.
- melhoria de throughput através de upload paralelo
- Apenas as partes que falharam durante a desconexão de rede podem ser reenviadas (retomável)
- Contorne o limite de 5GB de uma única solicitação e envie até 5TB
// AWS SDK v3 でのマルチパートアップロード例
import { S3Client, CreateMultipartUploadCommand,
UploadPartCommand, CompleteMultipartUploadCommand } from '@aws-sdk/client-s3';
const s3 = new S3Client({ region: 'ap-northeast-1' });
async function multipartUpload(bucket, key, file) {
// アップロードの開始
const { UploadId } = await s3.send(new CreateMultipartUploadCommand({
Bucket: bucket, Key: key,
}));
const chunkSize = 10 * 1024 * 1024; // 10MB
const parts = [];
for (let i = 0; i * chunkSize < file.size; i++) {
const chunk = file.slice(i * chunkSize, (i + 1) * chunkSize);
const { ETag } = await s3.send(new UploadPartCommand({
Bucket: bucket, Key: key,
UploadId, PartNumber: i + 1,
Body: chunk,
}));
parts.push({ ETag, PartNumber: i + 1 });
}
// パーツの結合(完了)
await s3.send(new CompleteMultipartUploadCommand({
Bucket: bucket, Key: key,
UploadId, MultipartUpload: { Parts: parts },
}));
}
Arquivo de teste disponível para usar neste artigo (gratuito)
- → <a href="/ja/files/threshold/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de arquivos de teste de valores limite</a> — Testar uploads próximos aos limites de cada armazenamento em nuvem
- → <a href="/ja/files/images/png/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de imagens de teste PNG</a> — Verificar o funcionamento do armazenamento com imagens de vários tamanhos
Artigos relacionados
- → <a href="/ja/blog/s3-upload-limit/" class="text-primary-600 dark:text-primary-400 hover:underline">Resumo dos limites de upload de arquivos do AWS S3 e CloudFront</a>
- → <a href="/ja/blog/how-to-test-upload-limit/" class="text-primary-600 dark:text-primary-400 hover:underline">Como testar corretamente o limite de upload de arquivo</a>
- → <a href="/ja/blog/mb-vs-mib-file-size/" class="text-primary-600 dark:text-primary-400 hover:underline">Diferença entre MB e MiB | Compreensão correta das unidades de tamanho de arquivo</a>