Conteneur Docker pour surveiller et nettoyer automatiquement les fichiers anciens dans les buckets S3.
- 🧹 Nettoyage automatique : Suppression des fichiers de plus de X jours
- 👀 Mode surveillance : Affichage coloré sans suppression (sécurisé)
- 🔄 Exécution flexible : Mode continu ou unique
- 🎯 Multi-buckets : Support de plusieurs buckets/dossiers
- 🌐 Compatibilité S3 : AWS S3, Wasabi, MinIO, etc.
# Connexion S3
AWS_ACCESS_KEY_ID=votre_access_key
AWS_SECRET_ACCESS_KEY=votre_secret_key
AWS_DEFAULT_REGION=eu-west-2
ENDPOINT_URL=https://s3.eu-west-2.wasabisys.com/
# Buckets à traiter (séparés par |)
BUCKET_NAME="bucket1|bucket2/dossier"
# Configuration
MODE=clean # Décommentez pour activer la suppression
FILE_AGE=90 # Âge limite en jours (défaut: 90)
RUN_ONCE=true # Exécution unique (défaut: false)- Mode surveillance (défaut) : Affiche les fichiers avec codes couleur, aucune suppression
- Mode nettoyage (
MODE=clean) : Supprime les fichiers de plus deFILE_AGEjours
# Mode surveillance (sécurisé)
docker run --rm --env-file env s3cli:latest
# Mode nettoyage
docker run --rm --env-file env -e MODE=clean s3cli:latest
# Test unique
docker run --rm --env-file env -e RUN_ONCE=true s3cli:latestservices:
s3cli-cleaner:
build: .
env_file: env
environment:
- MODE=clean
- RUN_ONCE=true
restart: unless-stoppedConfiguration: FILE_AGE=90 jours, SLEEP_TIME=86400 secondes
--- Running Cleaning at Fri Oct 25 10:30:00 UTC 2025 ---
--- Parcours de backup ---
backup-2025-07-15.tgz : 102 jours (SUPPRIMÉ en mode clean)
backup-2025-10-20.tgz : 5 jours
--- RUN_ONCE is true, exiting after one run ---
- Test : Mode surveillance avec
RUN_ONCE=true - Vérification : Examinez les fichiers qui seraient supprimés
- Nettoyage : Activez
MODE=cleanune fois validé
- "No credentials found" : Vérifiez
AWS_ACCESS_KEY_IDetAWS_SECRET_ACCESS_KEY - "Unable to locate service" : Vérifiez
AWS_DEFAULT_REGIONetENDPOINT_URL - Aucun fichier listé : Vérifiez les noms de buckets et permissions S3
docker logs s3cli-cleanerFILE_AGE=30: Modifier le seuil d'âge (défaut: 90 jours)SLEEP_TIME=3600: Intervalle entre exécutions (défaut: 24h)RUN_ONCE=true: Exécution unique puis arrêt