30 de setembro de 2026 · 5 min de leitura
Como excluir arquivos automaticamente após alguns dias no S3, R2 e B2
Compartilhamentos temporários se acumulam: capturas de tela para uma revisão, um build para um testador, um arquivo para um cliente. As regras de ciclo de vida deixam o bucket fazer a limpeza sozinho. O truque é decidir o tempo de vida na hora do envio, colocando o arquivo sob um prefixo que tenha uma regra.
O padrão de prefixo
Crie uma regra para cada tempo de vida, cada uma limitada à sua própria pasta:
tmp/1d/exclui depois de 1 diatmp/7d/exclui depois de 7 diastmp/30d/exclui depois de 30 dias
Envie um arquivo para tmp/7d/2026/09/report.pdf e ele some uma semana depois. Nada fora de tmp/ é afetado.
Cloudflare R2
- Abra as Settings do bucket, encontre Object lifecycle rules e selecione Add rule.
- Dê um nome, por exemplo
expire-7d, e defina o prefixo comotmp/7d/. - Escolha excluir os objetos 7 dias depois do envio e salve.
Ou com o Wrangler:
npx wrangler r2 bucket lifecycle add your-bucket expire-7d tmp/7d/ --expire-days 7Amazon S3
- Abra o bucket, vá em Management e selecione Create lifecycle rule.
- Dê um nome à regra e escolha Limit the scope using filters com o prefixo
tmp/7d/. - Em ações, selecione Expire current versions of objects e informe 7 dias. Em um bucket com versionamento, exclua também permanentemente as versões não atuais.
Com o AWS CLI:
{
"Rules": [
{
"ID": "expire-7d",
"Status": "Enabled",
"Filter": { "Prefix": "tmp/7d/" },
"Expiration": { "Days": 7 }
}
]
}
aws s3api put-bucket-lifecycle-configuration --bucket your-bucket \
--lifecycle-configuration file://lifecycle.json
Esse comando substitui toda a configuração de ciclo de vida do bucket, então inclua as regras que já existem.
Backblaze B2
Nas Lifecycle Settings do bucket, escolha regras personalizadas e adicione uma com o prefixo de nome de arquivo tmp/7d/. O B2 trabalha em duas etapas: days from uploading to hiding e days from hiding to deleting. Defina 6 e 1 para um arquivo que some depois de mais ou menos uma semana.
Quando exatamente os arquivos são excluídos?
As regras de ciclo de vida rodam em segundo plano, normalmente uma vez por dia. O Amazon S3 conta a partir do horário do envio, arredonda para a próxima meia-noite UTC e então coloca o objeto na fila de remoção; você para de pagar por ele assim que ele expira. Na prática, um arquivo pode continuar acessível por até cerca de um dia depois da data. Se um link precisa parar de funcionar em um horário exato, use uma URL pré-assinada.
Perguntas frequentes
As regras de ciclo de vida excluem arquivos com meu computador desligado?
Sim. As regras ficam guardadas no bucket e rodam do lado do provedor, então nada precisa estar rodando do seu lado.
Posso excluir arquivos depois de algumas horas em vez de dias?
Não. As regras de ciclo de vida trabalham com dias inteiros. Para links que devem expirar em horas, mantenha o arquivo privado e compartilhe uma URL pré-assinada.
Uma regra de ciclo de vida vai excluir arquivos fora do prefixo?
Não. Uma regra com filtro de prefixo só afeta chaves que começam com esse prefixo. Uma regra sem filtro vale para o bucket inteiro, então sempre defina um.