La configuration d'un cycle de vie vous permet de définir une politique d'expiration de vos objets et de les supprimer automatiquement.
Dans cet exemple, nous allons créer une politique de gestion du cycle de vie pour supprimer les objets dont la clé commence par rapports/
et qui ont plus de 90 jours.
La gestion des configuration des Cycle de Vie est possible avec des clients avec interface graphique (S3 Browser) ou les SDK AWS.
Dans cet exemple, nous utiliserons le client en ligne de commande AWS CLI.
Le cycle de vie est définit au niveau du Bucket.
Un maximum de 1000 règles de cycle de vie par Bucket est applicable.
Il peut y avoir un délai entre la date d'expiration et la date à laquelle le service de Stockage Objet supprime l'objet.
Toujours arrondir l'heure au jour suivant à minuit UTC.
Un objet supprimé ne peut être restauré.
La configuration d'un cycle de vie peut être gérée en utilisant aws s3api (d'autres outils ou SDK fonctionnent aussi) :
put-bucket-lifecycle
get-bucket-lifecycle
delete-bucket-lifecycle
Nous utilisons les utilitaires aws s3 et aws s3api issues du client S3 AWSCLIv2 sur Linux.${S3_ENDPOINT}
&${S3_PROFILE}
sont des variables d'environnement
Créez un fichier et insérez votre configuration au format JSON :
Appliquez-le au Bucket : bucket-test
Nom | Description | Requis |
---|---|---|
And
Conteneur pour spécifier les filtres de règles. Ces filtres déterminent le sous-ensemble d'objets auquel la règle s'applique.
Type : Chaîne de caractères
Parent: Rule
Oui, si vous spécifiez plus d'une condition de filtre (par exemple, un préfixe et une ou plusieurs tags).
Date
Date à laquelle vous voulez que l'action s'applique.
La valeur de la date doit être conforme au format ISO 8601. L'heure est toujours minuit UTC.
Type : Chaîne de caractères
Parent: Expiration
Oui, si Days
et ExpiredObjectDeleteMarker
sont absents.
Days
Spécifie le nombre de jours après la création de l'objet où l'action de la règle spécifique prend effet.
Type : Nombre entier positif lorsqu'il est utilisé avec Expiration.
Parent: Expiration
Oui, si Date
et ExpiredObjectDeleteMarker
sont absents.
Expiration
Cette action spécifie la durée de vie d'un objet. L'action dépend du status du versionnage dans le Bucket.
Si le versionnage n'a jamais été activé sur le Bucket, l'objet est supprimé. Sinon, si le versionnage est activé(ou suspendu), l'action s'applique uniquement à la version actuelle de l'objet. Dans un Bucket avec le versionnage activé, un objet peut avoir plusieurs version, une version courante et zéro ou 'n' versions non courantes.
Au lieu de supprimer la version actuelle, un marqueur de suppression (DeleteMarker)
est appliqué et ce marqueur devient la version courante le l'objet.
Note:
Si le versionnage dans votre Bucket est suspendu, marqueur de suppression (DeleteMarker)
sera créé avec un ID nul.
Pour supprimer les versions non courantes d'un objet, vous devez utiliser l'action NoncurrentVersionExpiration
Type : Container
Enfants : Days
ou Date
Parent: Rule
Oui, si aucune autre action n'est présente dans la règle.
Filter
Conteneur pour les éléments qui décrivent le filtre identifiant un sous-ensemble d'objets auquel la règle de cycle de vie s'applique. Si vous spécifiez un filtre vide ("Prefixe": {}
), la règle s'applique à tous les objets du seau.
Type : Chaîne de caractères
Enfants : Prefixe
, Tag
Parent: Rule
Oui
ID
Identifiant unique pour la règle. La valeur ne peut être supérieure à 255 caractères.
Type : Chaîne de caractères
Parent: Rule
Non
Key
Spécifie la clé d'un tag. Une clé d'un tag peut comporter jusqu'à 128 caractères Unicode.
Les clés des tags que vous spécifiez dans un filtre de règle de cycle de vie doivent être uniques.
Type : Chaîne de caractères
Parent: Tag
Oui, si le parent <
Tag
>
est spécifié.
LifecycleConfiguration
Conteneur pour les règles du cycle de vie. Vous pouvez ajouter jusqu'à 1000 règles.
Type : Container
Enfant: Rule
Parent: Aucun
Oui
ExpiredObjectDeleteMarker
Dans un Bucket où le versionnage est activé (ou suspendu), vous pouvez ajouter cette action pour supprimer les marqueur de suppression (DeleteMarker)
. Sur Bucket sans versionnage, cette action n'a aucun effet.
Cette action ne peut utiliser un filtre basé sur les tags
Valeur valide: true | false
Parent: Expiration
Oui. si Date
and Days
sont absent.
NoncurrentDays
Spécifie le nombre de jours un objet est non courant avant que l'action s'applique.
Valeur: entier
Parent: NoncurrentVersionExpiration
Oui
NoncurrentVersionExpiration
Indique quand un objet non courant expire. A l'expiration les versions non courantes de l'objet sont supprimées.
Positionnez cette configuration sur un Bucket, avec le versionnage activé (ou suspendu) afin de supprimer les versions non courante d'un objet au-delà d'un certaine période.
Type: Container
Enfant: NoncurrentDays
Parent: Rule
Oui, si aucune autre action est présente dans le conteneur Rule.
Prefixe
Préfixe de la clé d'objet identifiant un ou plusieurs objets auxquels la règle s'applique. Le préfixe vide (<Prefix></Prefix>) indique qu'il n'y a pas de filtre basé sur le préfixe de la clé.
Note:
Prise en charge <Prefixe> avec et sans <Filtre>.
PUT Bucket lifecycle avec un filtre:
"Prefix": {}, # No Prefix"Prefix": "documents/",
Il ne peut y avoir qu'un seul préfixe dans un filtre de règles de cycle de vie.
Type : Chaîne de caractères
Parent: Filter
ou And
(si vous spécifiez plusieurs filtres tels qu'un préfixe et un ou plusieurs tags)
Non
Rule
Conteneur pour une règle de cycle de vie. Une configuration de cycle de vie peut contenir jusqu'à 1 000 règles.
Type : Container
Ancêtre : LifecycleConfiguration
Oui
Status
si elle est activée, S3 exécute la règle comme prévu. Si elle est désactivée, S3 ignore la règle.
Type : Chaîne de caractères
Ancêtre : Rule
Valeurs valides : Enabled, Disabled.
Oui
Value
Spécifie la valeur d'une clé de balise. Chaque balise d'objet est une paire clé-valeur.
La valeur de la balise peut comporter jusqu'à 256 caractères Unicode.
Type : Chaîne de caractères
Ancêtre : Tag
Oui, si le parent <
Tag
>
est spécifié.