Carregador S3
Use esta habilidade quando uma execução de automação precisar de armazenamento durável de artefatos: relatórios CSV, PDFs, checkpoints JSON, capturas de tela, saídas de modelo ou logs que devem sobreviver fora da máquina local. O helper tem como alvo armazenamento genérico compatível com S3 e lê bucket, endpoint e credenciais apenas de variáveis de ambiente.
Quando invocar
- O usuário diz: "faça upload deste relatório para o S3", "salve artefatos no armazenamento de objetos", "baixe o arquivo da última execução", "use MinIO/R2/Spaces".
- O código na conversa escreve arquivos localmente, mas precisa de um local portátil para handoff ou arquivamento.
Quando NÃO invocar
- O artefato é necessário apenas dentro do mesmo processo; mantenha-o no disco.
- O usuário precisa de um workflow de CDN de site público com invalidação de cache e URLs assinadas.
Exemplo concreto
Entrada do usuário:
Faça upload do CSV gerado para meu bucket compatível com S3 após o scraper terminar.
Saída:
# Copie assets/s3.py para seu projeto, então:
from s3 import upload_file
chave = upload_file("out/daily_report.csv", key="relatorios/daily_report.csv")
print("enviado:", chave)
O helper lê S3_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_ENDPOINT_URL (opcional) e S3_REGION (opcional) do ambiente. Nada específico do destino ou secreto é commitado.
Padrão a aplicar
- Mantenha nome do bucket, endpoint, chave de acesso e chave secreta apenas em variáveis de ambiente.
- Use chaves de objeto determinísticas, como
relatorios/YYYY-MM-DD/nome.csv, para que reexecuções sejam fáceis de encontrar. - Faça upload apenas após o arquivo local estar completo; nunca transmita um artefato meio escrito.
- Suporte endpoints compatíveis com S3 passando
endpoint_urlem vez de hardcodar AWS. - Falhe com um erro de configuração claro quando variáveis de ambiente ou bibliotecas cliente estiverem ausentes.
Referência: assets/s3.py.
Fonte
Destilado do uso em produção nos projetos de automação do autor. v1.0.0. Veja também: [[csv-report-writer]], [[playwright-pdf-snapshot]], [[pipeline-orchestrator]].
→ Construa o bot executável completo com Trawlkit.