Backend, APIs e dados · Misto

Arquivos e armazenamento de objetos

Em uma linha: Arquivos não pertencem ao banco de dados nem ao disco do servidor — pertencem ao armazenamento de objetos com endereços assinados.

Por que não no servidor

Arquivos em um disco local quebram múltiplas instâncias, backup e deploy. No armazenamento de objetos você obtém durabilidade, acesso direto de uma rede de distribuição e uma política de ciclo de vida.

O fluxo correto

O servidor emite um endereço assinado de vida curta; o cliente faz upload diretamente; o servidor recebe uma notificação e atualiza o registro. Menos carga, menos custo e menos espera para o usuário.

No download: mesmo princípio. Um endereço assinado com expiração, para que um link vazado não seja eterno.

O que verificar no servidor

O tipo de arquivo pelo conteúdo e não pela extensão, um limite de tamanho e um scan de conteúdo malicioso quando usuários fazem upload para outros. E nomes de arquivo — nunca armazene o nome que o usuário deu como caminho no sistema.

Indo mais fundo

Defina uma política de ciclo de vida para mídias: o que é deletado, quando e como. O armazenamento é a linha que cresce silenciosamente, e sem política simplesmente cresce.