Uploader S3
Utilisez cette compétence lorsqu'une exécution automatisée nécessite un stockage durable des artefacts : rapports CSV, PDF, points de contrôle JSON, captures d'écran, sorties de modèles ou logs qui doivent survivre en dehors de la machine locale. L'helper cible le stockage générique compatible S3 et lit le bucket, l'endpoint et les identifiants uniquement à partir des variables d'environnement.
Quand l'invoquer
- L'utilisateur dit : « télécharge ce rapport sur S3 », « sauvegarde les artefacts dans un stockage objet », « télécharge le fichier de la dernière exécution », « utilise MinIO/R2/Spaces ».
- Le code dans la conversation écrit des fichiers localement mais a besoin d'un transfert portable ou d'un emplacement d'archivage.
Quand NE PAS l'invoquer
- L'artefact n'est nécessaire qu'à l'intérieur du même processus ; conservez-le sur le disque.
- L'utilisateur a besoin d'un workflow CDN public avec invalidation de cache et URLs signées.
Exemple concret
Entrée utilisateur :
Télécharge le CSV généré vers mon bucket S3 compatible une fois le scraper terminé.
Sortie :
# Copiez assets/s3.py dans votre projet, puis :
from s3 import upload_file
key = upload_file("out/daily_report.csv", key="reports/daily_report.csv")
print("téléchargé :", key)
L'helper lit S3_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_ENDPOINT_URL (optionnel) et S3_REGION (optionnel) depuis l'environnement. Aucune information spécifique ou secret n'est commitée.
Modèle à appliquer
- Conservez le nom du bucket, l'endpoint, la clé d'accès et la clé secrète uniquement dans les variables d'environnement.
- Utilisez des clés d'objet déterministes comme
reports/YYYY-MM-DD/nom.csvpour que les ré-exécutions soient faciles à retrouver. - Téléchargez uniquement après que le fichier local soit complet ; ne transmettez jamais un artefact partiellement écrit.
- Supportez les endpoints compatibles S3 en passant
endpoint_urlau lieu de coder en dur AWS. - Échouez avec une erreur de configuration claire lorsque les variables d'environnement ou les bibliothèques clientes sont manquantes.
Référence : assets/s3.py.
Source
Distillé d'une utilisation en production dans les projets d'automatisation de l'auteur. v1.0.0. Voir aussi : [[csv-report-writer]], [[playwright-pdf-snapshot]], [[pipeline-orchestrator]].
→ Construisez le bot exécutable complet avec Trawlkit.