30 septembre 2026 · 5 min de lecture

Comment supprimer automatiquement des fichiers après quelques jours sur S3, R2 et B2

Les partages temporaires s'accumulent : des captures pour une relecture, un build pour un testeur, un fichier pour un client. Les règles de cycle de vie permettent au bucket de faire le ménage lui-même. L'astuce consiste à décider de la durée de vie au moment de l'envoi, en plaçant le fichier sous un préfixe doté d'une règle.

Le principe des préfixes

Créez une règle par durée de vie, chacune limitée à son propre dossier :

  • tmp/1d/ supprime au bout de 1 jour
  • tmp/7d/ supprime au bout de 7 jours
  • tmp/30d/ supprime au bout de 30 jours

Envoyez un fichier dans tmp/7d/2026/09/report.pdf et il disparaît une semaine plus tard. Rien de ce qui se trouve en dehors de tmp/ n'est touché.

Cloudflare R2

  1. Ouvrez les Settings du bucket, repérez Object lifecycle rules, puis sélectionnez Add rule.
  2. Nommez-la, par exemple expire-7d, et définissez le préfixe tmp/7d/.
  3. Choisissez de supprimer les objets 7 jours après leur envoi et enregistrez.

Ou avec Wrangler :

npx wrangler r2 bucket lifecycle add your-bucket expire-7d tmp/7d/ --expire-days 7

Amazon S3

  1. Ouvrez le bucket, allez dans Management et sélectionnez Create lifecycle rule.
  2. Nommez la règle et choisissez Limit the scope using filters avec le préfixe tmp/7d/.
  3. Dans les actions, sélectionnez Expire current versions of objects et saisissez 7 jours. Dans un bucket versionné, supprimez aussi définitivement les versions non actuelles.

Avec l'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

Cette commande remplace toute la configuration de cycle de vie du bucket : incluez-y les règles qui existent déjà.

Backblaze B2

Dans les Lifecycle Settings du bucket, choisissez des règles personnalisées et ajoutez-en une avec le préfixe de nom de fichier tmp/7d/. B2 fonctionne en deux temps : days from uploading to hiding (jours entre l'envoi et le masquage) et days from hiding to deleting (jours entre le masquage et la suppression). Réglez-les sur 6 et 1 pour un fichier qui disparaît au bout d'environ une semaine.

Quand les fichiers sont-ils supprimés exactement ?

Les règles de cycle de vie s'exécutent en arrière-plan, généralement une fois par jour. Amazon S3 compte à partir de l'heure d'envoi, arrondit au minuit UTC suivant, puis place l'objet en file d'attente de suppression ; vous cessez de le payer dès qu'il a expiré. En pratique, un fichier peut rester accessible jusqu'à environ un jour après sa date. Si un lien doit cesser de fonctionner à une heure précise, utilisez plutôt une URL présignée.

Questions fréquentes

Les règles de cycle de vie suppriment-elles les fichiers si mon ordinateur est éteint ?

Oui. Les règles sont enregistrées dans le bucket et s'exécutent côté fournisseur : rien n'a besoin de tourner de votre côté.

Puis-je supprimer des fichiers au bout de quelques heures plutôt que de quelques jours ?

Non. Les règles de cycle de vie fonctionnent en jours entiers. Pour des liens qui doivent expirer en quelques heures, gardez le fichier privé et partagez une URL présignée.

Une règle de cycle de vie supprimera-t-elle des fichiers hors du préfixe ?

Non. Une règle avec un filtre de préfixe ne concerne que les clés qui commencent par ce préfixe. Une règle sans filtre s'applique à tout le bucket : définissez donc toujours un préfixe.