Configuration de cycle de vie

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.

Limitations

  • 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é.

Gérer les configurations de cycle de vie

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éer une configuration de cycle de vie

Créez un fichier et insérez votre configuration au format JSON :

Expiration auto
{
  "Rules": [
    {
      "Prefix": {},
      "Expiration": {
        "Days": 3
      },
    "Status": "Enabled",
    "ID": "Delete After 3 days."
    }
  ]
}

Appliquez-le au Bucket : bucket-test

aws s3api --endpoint-url=${S3_ENDPOINT} put-bucket-lifecycle --bucket bucket-test --lifecycle-configuration file://delete_after_3days.json --profile ${S3_PROFILE}

Afficher une configuration du cycle de vie

aws s3api --endpoint-url=${S3_ENDPOINT} get-bucket-lifecycle --bucket bucket-test --profile ${S3_PROFILE}

Supprimer une configuration de cycle de vie

aws s3api --endpoint-url=${S3_ENDPOINT} delete-bucket-lifecycle --bucket bucket-test --profile ${S3_PROFILE}

Éléments de configuration du cycle de vie supportés

NomDescriptionRequis

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é.

Dernière mise à jour