Exemples de configurations du cycle de vie S3 - Amazon Simple Storage Service

Exemples de configurations du cycle de vie S3

Cette section fournit des exemples de configuration de cycle de vie S3. Chaque exemple indique comment vous pouvez spécifier XML dans chaque exemple de scénarios.

Archivage de tous les objets dans un délai d’un jour après leur création

Chaque règle de cycle de vie S3 comprend un filtre que vous pouvez utiliser pour identifier un sous-ensemble d’objets dans votre compartiment auquel s’applique la règle de cycle de vie S3. Les configurations S3 de cycle de vie suivantes présentent des exemples de spécification d’un filtre.

  • Dans cette règle de configuration de cycle de vie S3, le filtre spécifie un préfixe de clé (tax/). Par conséquent, la règle s’applique aux objets avec le préfixe de nom de clé tax/, comme tax/doc1.txt et tax/doc2.txt.

    La règle spécifie deux actions qui demandent à Amazon S3 de procéder comme suit :

    • La transition d’objets vers la classe de stockage S3 Glacier Flexible Retrieval 365 jours (un an) après leur création.

    • La suppression d’objets (l’action Expiration) 3 650 jours (10 ans) après leur création.

    <LifecycleConfiguration> <Rule> <ID>Transition and Expiration Rule</ID> <Filter> <Prefix>tax/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>365</Days> <StorageClass>GLACIER</StorageClass> </Transition> <Expiration> <Days>3650</Days> </Expiration> </Rule> </LifecycleConfiguration>

    Au lieu de spécifier l’âge de l’objet en termes de jours après sa création, vous pouvez spécifier une date pour chaque action. Cependant, vous ne pouvez pas utiliser à la fois Date et Days dans la même règle.

  • Si vous souhaitez que la règle de cycle de vie S3 s’applique à tous les objets dans le compartiment, spécifiez un préfixe vide. Dans la configuration suivante, la règle spécifie une action Transition qui indique à Amazon S3 d’effectuer la transition des objets vers la classe de stockage S3 Glacier Flexible Retrieval 0 jour après leur création. Cette règle signifie que les objets sont éligibles pour l’archivage dans S3 Glacier Flexible Retrieval à minuit UTC après leur création. Pour d’informations sur les contraintes de cycle de vie, consultez Contraintes et considérations pour les transitions.

    <LifecycleConfiguration> <Rule> <ID>Archive all object same-day upon creation</ID> <Filter> <Prefix></Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>0</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> </LifecycleConfiguration>
  • Vous pouvez spécifier un préfixe de nom de clé, ou aucun, et plusieurs balises d’objets dans un filtre, ou aucune. L’exemple de code suivant applique la règle de cycle de vie S3 à un sous-ensemble d’objets avec le préfixe de clé tax/ et aux objets ayant deux balises avec une clé et une valeur spécifiques. Si vous spécifiez plusieurs filtres, vous devez inclure l’élément <And> comme illustré (Amazon S3 applique un opérateur logique AND pour combiner les conditions de filtre spécifiées).

    ... <Filter> <And> <Prefix>tax/</Prefix> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> </And> </Filter> ...

  • Vous pouvez filtrer des objets en fonction uniquement des balises. Par exemple, la règle de cycle de vie S3 suivante s’applique aux objets ayant les deux balises spécifiées (elle ne spécifie pas de préfixe).

    ... <Filter> <And> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> </And> </Filter> ...

Important

Si vous avez plusieurs règles dans une configuration du cycle de vie S3, un objet peut devenir éligible pour plusieurs actions du cycle de vie S3 le même jour. Dans de tels cas, Amazon S3 suit les règles générales suivantes :

  • La suppression permanente a priorité sur la transition.

  • La transition a priorité sur la création de marqueurs de suppression.

  • Si un objet est éligible pour les transitions vers S3 Glacier Flexible Retrieval et S3 Standard-IA (ou S3 One Zone-IA), Amazon S3 choisit la transition vers S3 Glacier Flexible Retrieval.

Pour obtenir des exemples, consultez Exemples de chevauchement de filtres et d’actions de cycle de vie contradictoires.

Désactivation temporaire des règles du cycle de vie

Vous pouvez désactiver temporairement une règle du cycle de vie S3 à l’aide de l’élément status. Cela peut être utile si vous souhaitez tester de nouvelles règles ou résoudre des problèmes liés à votre configuration, sans remplacer vos règles existantes. La configuration de cycle de vie S3 suivante spécifie deux règles :

  • La règle 1 indique à Amazon S3 d’effectuer la transition des objets avec le préfixe logs/ vers la classe de stockage S3 Glacier Flexible Retrieval peu de temps après leur création.

  • La règle 2 indique à Amazon S3 d’effectuer la transition des objets avec le préfixe documents/ vers la classe de stockage S3 Glacier Flexible Retrieval peu de temps après leur création.

Dans la configuration, la règle 1 est activée et la règle 2 est désactivée. Amazon S3 ignore la règle désactivée.

<LifecycleConfiguration> <Rule> <ID>Rule1</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>0</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>Rule2</ID> <Filter> <Prefix>documents/</Prefix> </Filter> <Status>Disabled</Status> <Transition> <Days>0</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> </LifecycleConfiguration>

Choix d’une classe de stockage inférieure pendant la durée de vie d’un objet

Dans cet exemple, vous utilisez une configuration de cycle de vie S3 pour faire passer des objets à la classe de stockage inférieure pendant leur cycle de vie. Ce choix peut permettre de réduire les coûts de stockage. Pour plus d’informations sur la tarification, consultez Tarification Amazon S3.

L’exemple suivant de configuration de cycle de vie S3 spécifie une règle qui s’applique aux objets avec le préfixe de nom de clé logs/. La règle spécifie les deux actions suivantes :

  • Deux actions de transition :

    • La transition d’objets vers la classe de stockage S3 standard – Accès peu fréquent 30 jours après leur création.

    • La transition d’objets vers la classe de stockage S3 Glacier Flexible Retrieval 90 jours après leur création.

  • Une action d’expiration qui indique à Amazon S3 de supprimer les objets un an après leur création.

<LifecycleConfiguration> <Rule> <ID>example-id</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>STANDARD_IA</StorageClass> </Transition> <Transition> <Days>90</Days> <StorageClass>GLACIER</StorageClass> </Transition> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>
Note

Vous pouvez utiliser une règle pour décrire toutes les actions de cycle de vie S3 si toutes les actions s’appliquent au même ensemble d’objets (identifié par le filtre). Sinon, vous pouvez ajouter plusieurs règles, chacune spécifiant un filtre différent.

Important

Si vous avez plusieurs règles dans une configuration du cycle de vie S3, un objet peut devenir éligible pour plusieurs actions du cycle de vie S3 le même jour. Dans de tels cas, Amazon S3 suit les règles générales suivantes :

  • La suppression permanente a priorité sur la transition.

  • La transition a priorité sur la création de marqueurs de suppression.

  • Si un objet est éligible pour les transitions vers S3 Glacier Flexible Retrieval et S3 Standard-IA (ou S3 One Zone-IA), Amazon S3 choisit la transition vers S3 Glacier Flexible Retrieval.

Pour obtenir des exemples, consultez Exemples de chevauchement de filtres et d’actions de cycle de vie contradictoires.

Spécification de plusieurs règles

Vous pouvez spécifier plusieurs règles si vous souhaitez effectuer différentes actions de cycle de vie S3 pour différents d’objets. La configuration de cycle de vie S3 suivante a deux règles :

  • La règle 1 s’applique aux objets ayant le préfixe de nom de clé classA/. Elle indique à Amazon S3 d’effectuer la transition d’objets vers la classe de stockage S3 Glacier Flexible Retrieval un an après leur création et de faire expirer ces objets 10 ans après leur création.

  • La règle 2 s’applique aux objets ayant le préfixe de nom de clé classB/. Elle indique à Amazon S3 d’effectuer la transition d’objets vers la classe de stockage S3 standard – Accès peu fréquent 90 jours après leur création et de les supprimer un an après leur création.

<LifecycleConfiguration> <Rule> <ID>ClassADocRule</ID> <Filter> <Prefix>classA/</Prefix> </Filter> <Status>Enabled</Status> <Transition>       <Days>365</Days>       <StorageClass>GLACIER</StorageClass>     </Transition> <Expiration> <Days>3650</Days> </Expiration> </Rule> <Rule> <ID>ClassBDocRule</ID> <Filter> <Prefix>classB/</Prefix> </Filter> <Status>Enabled</Status> <Transition>       <Days>90</Days>       <StorageClass>STANDARD_IA</StorageClass>     </Transition> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>
Important

Si vous avez plusieurs règles dans une configuration du cycle de vie S3, un objet peut devenir éligible pour plusieurs actions du cycle de vie S3 le même jour. Dans de tels cas, Amazon S3 suit les règles générales suivantes :

  • La suppression permanente a priorité sur la transition.

  • La transition a priorité sur la création de marqueurs de suppression.

  • Si un objet est éligible pour les transitions vers S3 Glacier Flexible Retrieval et S3 Standard-IA (ou S3 One Zone-IA), Amazon S3 choisit la transition vers S3 Glacier Flexible Retrieval.

Pour obtenir des exemples, consultez Exemples de chevauchement de filtres et d’actions de cycle de vie contradictoires.

Spécification d’une règle de cycle de vie pour un compartiment avec gestion des versions

Imaginez que vous avez un compartiment sur lequel la gestion des versions est activée. Dans ce cas, vous avez pour chaque objet une version actuelle et éventuellement une ou plusieurs versions anciennes. (Pour plus d’informations sur la gestion des versions S3, consultez Conservation de plusieurs versions d’objets grâce à la gestion des versions S3.) Dans cet exemple, vous souhaitez conserver un an d’historique et supprimer les versions anciennes. Les configurations du cycle de vie S3 prennent en charge la conservation de 1 à 100 versions de n’importe quel objet.

Afin de réaliser des économiser sur les coûts de stockage, vous souhaitez déplacer les versions anciennes vers S3 Glacier Flexible Retrieval 30 jours après qu’elles sont devenues anciennes (en supposant que ces objets anciens sont des données froides auxquelles vous n’avez pas besoin d’accéder en temps réel). En outre, vous vous attendez à ce que la fréquence d’accès des versions actuelles diminue 90 jours après leur création. Vous pouvez dès lors décider de déplacer ces objets vers la classe de stockage S3 Standard-IA.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Filter> <Prefix></Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>90</Days> <StorageClass>STANDARD_IA</StorageClass> </Transition> <NoncurrentVersionTransition> <NoncurrentDays>30</NoncurrentDays> <StorageClass>GLACIER</StorageClass> </NoncurrentVersionTransition> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>5</NewerNoncurrentVersions> <NoncurrentDays>365</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

Suppression des marqueurs de suppression des objets expirés dans un compartiment avec gestion des versions

Un compartiment activé pour la gestion des versions a une version d’objet actuelle et une ou plusieurs versions anciennes pour chaque objet. Lorsque vous supprimez un objet, notez ce qui suit :

  • Si vous ne spécifiez pas un ID de version dans votre demande de suppression, Amazon S3 ajoute un marqueur de suppression au lieu de supprimer l’objet. La version actuelle de l’objet devient ancienne et le marqueur de suppression devient la version actuelle.

  • Si vous spécifiez un ID de version dans votre demande de suppression, Amazon S3 supprime la version de l’objet définitivement (aucun marqueur de suppression n’est créé).

  • Un marqueur de suppression avec aucune version ancienne est appelé marqueur de suppression d’objet expiré.

Cet exemple illustre un scénario qui peut créer des marqueurs de suppression d’objet expiré dans votre compartiment et la façon dont vous pouvez utiliser une configuration de cycle de vie S3 pour indiquer à Amazon S3 de supprimer les marqueurs de suppression d’objet expiré.

Supposons que vous écrivez une configuration du cycle de vie S3 qui utilise l’action NoncurrentVersionExpiration pour supprimer les versions non actuelles 30 jours après qu’elles sont devenues non actuelles et qui retient au maximum 10 versions non actuelles, comme illustré dans l’exemple suivant.

<LifecycleConfiguration> <Rule> ... <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

L’action NoncurrentVersionExpirationne s’applique pas aux versions d’objets actuelles. Elle supprime uniquement les versions anciennes.

Pour les versions d’objet actuelles, les options suivantes vous permettent de gérer leur cycle de vie selon que les versions d’objet actuelles suivent un cycle de vie bien défini :

  • Les versions d’objet actuelles suivent un cycle de vie bien défini.

    Dans ce cas, vous pouvez utiliser une configuration de cycle de vie S3 avec l’action Expiration pour indiquer à Amazon S3 de supprimer les versions actuelles, comme illustré dans l’exemple suivant.

    <LifecycleConfiguration> <Rule> ... <Expiration> <Days>60</Days> </Expiration> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

    Dans cet exemple, Amazon S3 supprime les versions actuelles 60 jours après leur création en ajoutant un marqueur de suppression pour chaque version d’objet actuelle. Ainsi, la version actuelle devient ancienne et le marqueur de suppression devient la version actuelle. Pour plus d’informations, consultez Conservation de plusieurs versions d’objets grâce à la gestion des versions S3.

    Note

    Vous ne pouvez pas spécifier à la fois une balise Days et ExpiredObjectDeleteMarker sur la même règle. Si vous spécifiez la balise Days, Amazon S3 effectue automatiquement le nettoyage ExpiredObjectDeleteMarker une fois que les marqueurs de suppression sont suffisamment anciens pour satisfaire aux critères d’âge. Pour nettoyer les marqueurs de suppression dès qu’ils deviennent la seule version, créez une règle distincte avec uniquement la balise ExpiredObjectDeleteMarker.

    L’action NoncurrentVersionExpiration dans la même configuration de cycle de vie S3 supprime les objets anciens 30 jours après qu’ils sont devenus anciens. Ainsi, dans cet exemple, toutes les versions d’objet sont définitivement supprimées 90 jours après la création de l’objet. Bien que des marqueurs de suppression d’objet expiré soient créés au cours de ce processus, Amazon S3 détecte et supprime les marqueurs de suppression d’objet expiré à votre place.

  • Les versions d’objet actuelles n’ont pas de cycle de vie bien défini.

    Dans ce cas, vous pouvez supprimer les objets manuellement si vous n’en avez pas besoin, ce qui créera un marqueur de suppression avec une ou plusieurs versions anciennes. Si la configuration de cycle de vie S3 avec l’action NoncurrentVersionExpiration supprime toutes les versions anciennes, vous avez à présent des marqueurs de suppression d’objet expiré.

    Plus précisément pour ce scénario, la configuration de cycle de vie S3 fournit une action Expiration que vous pouvez utiliser pour supprimer les marqueurs de suppression d’objet expiré.

    <LifecycleConfiguration> <Rule> <ID>Rule 1</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker> </Expiration> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

En définissant l’élément ExpiredObjectDeleteMarker sur true dans l’action Expiration, vous indiquez à Amazon S3 de supprimer les marqueurs de suppression d’objet expiré.

Note

Si vous spécifiez l’action de cycle de vie S3 ExpiredObjectDeleteMarker, la règle ne peut pas spécifier un filtre basé sur une balise.

Configuration du cycle de vie pour annuler les chargements partitionnés

Vous pouvez utiliser les opérations d’API REST de chargement partitionné Amazon S3 pour charger des objets volumineux en plusieurs parties. Pour en savoir plus sur les chargements partitionnés, consultez Chargement et copie d’objets à l’aide du chargement partitionné dans Amazon S3.

Avec une configuration du cycle de vie S3, vous pouvez indiquer à Amazon S3 d’arrêter les chargements partitionnés incomplets (identifiés par le préfixe de nom de clé spécifié dans la règle) s’ils ne se terminent pas avant un certain nombre de jours suivant leur lancement. Lorsque Amazon S3 interrompt un chargement partitionné, toutes les parties associées au chargement partitionné sont supprimées. Ce processus vous aide à contrôler vos coûts de stockage en garantissant que vous n’avez pas de chargements partitionnés incomplets avec des parties stockées dans Amazon S3.

Note

Si vous spécifiez l’action de cycle de vie S3 AbortIncompleteMultipartUpload, la règle ne peut pas spécifier un filtre basé sur une balise.

Voici un exemple de configuration de cycle de vie S3 qui spécifie une règle avec l’action AbortIncompleteMultipartUpload. Cette action indique à Amazon S3 d’arrêter les chargements partitionnés incomplets sept jours après leur lancement.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Filter> <Prefix>SomeKeyPrefix/</Prefix> </Filter> <Status>rule-status</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>7</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>

Expiration d’objets non actuels ne contenant aucune donnée

Vous pouvez créer des règles qui transfèrent des objets uniquement en fonction de leur taille. Vous pouvez spécifier une taille minimale (ObjectSizeGreaterThan) ou une taille maximale (ObjectSizeLessThan), ou vous pouvez spécifier une plage de tailles d’objet en octets. Si vous utilisez plusieurs filtres, comme une règle de préfixe et de taille, vous devez les envelopper dans un élément <And>.

<LifecycleConfiguration> <Rule> <ID>Transition with a prefix and based on size</ID> <Filter> <And> <Prefix>tax/</Prefix> <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan> </And> </Filter> <Status>Enabled</Status> <Transition> <Days>365</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> </LifecycleConfiguration>

Si vous spécifiez une plage en utilisant à la fois les éléments ObjectSizeGreaterThan et ObjectSizeLessThan, la taille maximale des objets doit être supérieure à la taille minimale des objets. Si vous utilisez plusieurs filtres, vous devez les envelopper dans un élément <And>. L’exemple suivant montre comment spécifier des objets dans une plage comprise entre 500 et 64 000 octets. Lorsque vous spécifiez une plage, les filtres ObjectSizeGreaterThan et ObjectSizeLessThan excluent les valeurs spécifiées. Pour en savoir plus, consultez Élément de filtre.

<LifecycleConfiguration> <Rule> ... <And> <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan> <ObjectSizeLessThan>64000</ObjectSizeLessThan> </And> </Rule> </LifecycleConfiguration>

Vous pouvez également créer des règles pour faire expirer spécifiquement les anciens objets qui ne contiennent aucune donnée, y compris les anciens objets marqueurs de suppression, créés dans un compartiment doté de la gestion des versions. L’exemple suivant utilise l’action NoncurrentVersionExpiration pour supprimer les anciennes versions, 30 jours après qu’elles sont devenues anciennes, et pour retenir au plus 10 anciennes versions des objets. Il utilise également l’élément ObjectSizeLessThan pour filtrer uniquement les objets dépourvus de données.

<LifecycleConfiguration> <Rule> <ID>Expire noncurrent with size less than 1 byte</ID> <Filter> <ObjectSizeLessThan>1</ObjectSizeLessThan> </Filter> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NewerNoncurrentVersions>10</NewerNoncurrentVersions> <NoncurrentDays>30</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

Exemple : permettre la transition d’objets de moins de 128 Ko

Amazon S3 applique un comportement par défaut à votre configuration du cycle de vie qui empêche la transition des objets de moins de 128 Ko vers toute classe de stockage. Vous pouvez autoriser la transition des objets plus petits en ajoutant un filtre de taille minimale (ObjectSizeGreaterThan) ou de taille maximale (ObjectSizeLessThan) qui spécifie une taille inférieure pour la configuration. L’exemple suivant permet la transition de tout objet de moins de 128 Ko vers la classe de stockage S3 Glacier Instant Retrieval :

<LifecycleConfiguration> <Rule> <ID>Allow small object transitions</ID> <Filter> <ObjectSizeGreaterThan>1</ObjectSizeGreaterThan> </Filter> <Status>Enabled</Status> <Transition> <Days>365</Days> <StorageClass>GLACIER_IR</StorageClass> </Transition> </Rule> </LifecycleConfiguration>
Note

En septembre 2024, Amazon S3 a mis à jour le comportement de transition par défaut pour les petits objets, comme suit :

  • Comportement de transition par défaut mis à jour : à compter du mois de septembre 2024, le comportement par défaut empêche les objets de moins de 128 Ko d’être transférés vers toute classe de stockage.

  • Comportement de transition par défaut précédent : avant le mois de septembre 2024, le comportement par défaut autorisait les objets de moins de 128 Ko à être transférés uniquement vers les classes de stockage S3 Glacier et S3 Glacier Deep Archive.

Les configurations créées avant le mois de septembre 2024 conservent le comportement de transition précédent, sauf si vous les modifiez. En d’autres termes, si vous créez, modifiez ou supprimez des règles, le comportement de transition par défaut de votre configuration est remplacé par le comportement mis à jour. Si votre cas d’utilisation l’exige, vous pouvez modifier le comportement de transition par défaut afin que les objets de moins de 128 Ko soient transférés vers S3 Glacier et S3 Glacier Deep Archive. Pour ce faire, utilisez l’en-tête x-amz-transition-object-size-minimum-default facultatif dans une demande PutBucketLifecycleConfiguration.

L’exemple suivant montre comment utiliser l’en-tête x-amz-transition-object-size-minimum-default d’une demande PutBucketLifecycleConfiguration pour appliquer le comportement de transition par défaut varies_by_storage_class à une configuration du cycle de vie. Ce comportement permet la transition d’un objet de moins de 128 Ko vers les classes de stockage S3 Glacier ou S3 Glacier Deep Archive. Par défaut, toutes les autres classes de stockage empêcheront les transitions inférieures à 128 Ko. Vous pouvez toujours utiliser des filtres personnalisés pour modifier la taille de transition minimale pour une classe de stockage quelconque. Les filtres personnalisés ont toujours priorité sur le comportement de transition par défaut :

HTTP/1.1 200 x-amz-transition-object-size-minimum-default: varies_by_storage_class <?xml version="1.0" encoding="UTF-8"?> ...