Anested CloudAnestedCloud
Voltar ao blog
Guias28 de abril de 2026 · 6 min de leitura

Armazenamento de objetos para uploads de usuários: pare de encher o disco do seu servidor

Toda aplicação acaba aceitando um arquivo: um avatar, uma fatura em PDF, uma foto de produto. O primeiro instinto é gravá-lo em uma pasta no servidor — e é exatamente esse instinto que enche o seu disco, quebra os seus deploys e trava a sua escalabilidade. Avatares, PDFs e imagens não pertencem ao disco do seu servidor de aplicação. Um bucket do Nest Storage os torna duráveis, baratos e prontos para CDN, e este guia mostra como chegar lá.

Por que o disco local te deixa na mão

Uma pasta cheia de uploads funciona bem até o dia em que para de funcionar. O disco enche silenciosamente em segundo plano, e o primeiro sintoma costuma ser o banco de dados ou os logs falhando porque a pasta de uploads devorou o último gigabyte. Pior: muitas configurações de deploy substituem o diretório de release inteiro — um deploy, e todos os arquivos que os seus usuários confiaram a você desaparecem.

Depois vem a escalabilidade. No momento em que você adiciona um segundo servidor atrás de um balanceador de carga, metade das requisições cai em uma máquina que não tem o arquivo. Sessões fixas e gambiarras com rsync só adiam o problema. Arquivos que vivem no disco de uma única máquina são, por definição, um ponto único de falha.

O fluxo de upload que funciona

O padrão é simples: o cliente envia o arquivo para a sua API (ou direto para o bucket com uma URL pré-assinada), a sua API o coloca em um bucket do Nest Storage, e o bucket devolve uma chave de objeto. É essa chave — não o arquivo — que você guarda no banco de dados.

O seu banco de dados continua pequeno e rápido, os seus servidores continuam sem estado, e o arquivo em si vive em um lugar feito para durabilidade. Aqui está o fluxo inteiro em duas linhas:

const { key } = await nest.upload("avatars", file);
await db.user.update({ id, avatarKey: key });

Buckets privados vs. públicos

Nem todo arquivo merece o mesmo tratamento. Logos, imagens de produto e outros assets do site podem viver em um bucket público e ser servidos diretamente — idealmente por um CDN com domínio personalizado. Qualquer um pode lê-los, e essa é justamente a ideia.

Documentos de usuários são outra história. Faturas, contratos e documentos de identidade pertencem a um bucket privado, e a sua API concede acesso gerando URLs assinadas que expiram em poucos minutos. O arquivo nunca fica acessível publicamente; apenas o link que você acabou de criar.

  • Bucket público para imagens e assets estáticos
  • Bucket privado com URLs assinadas que expiram para documentos
  • Buckets separados por ambiente, para que o staging nunca toque nos arquivos de produção

Nomenclatura, versionamento e limpeza

As chaves de objeto são o seu sistema de arquivamento, então escolha os prefixos com cuidado: avatars/{userId}/… ou invoices/2026/04/… tornam fácil listar, migrar e excluir arquivos por usuário ou por data. Um URI nest:// com uma estrutura de chaves limpa se documenta sozinho.

Ative o versionamento nos buckets em que uma sobrescrita acidental faria estrago — a versão antiga fica a uma chamada de API de distância, em vez de perdida para sempre. E adicione regras de ciclo de vida para varrer arquivos órfãos: uploads cuja linha no banco foi excluída, ou arquivos temporários com mais de uma semana, são limpos automaticamente em vez de custar dinheiro para sempre.

Quanto custa

Com o Nest Storage você paga apenas por duas coisas: o armazenamento que realmente usa e a largura de banda que realmente serve. Sem cobrança por requisição, sem itens surpresa na fatura — os preços são em ₹, previsíveis e fáceis de calcular antes de você se comprometer.

Há um nível gratuito generoso o bastante para projetos pessoais, então o recurso de upload de avatar que você construir neste fim de semana não custa nada até os usuários de verdade chegarem. E quando chegarem, o mesmo bucket, a mesma API e as mesmas chaves continuam funcionando — só que com uma cota maior.

Pronto para colocar em prática?

Coloque no ar um servidor, um banco de dados ou um bucket — planos gratuitos incluídos.

Começar agora