Configurer la gestion du cycle de vie des objets Exemples de configuration
Pour vous aider à gérer les coûts, Cloud Storage vous propose une fonctionnalité de gestion du cycle de vie des objets pour les cas d'utilisation courants, tels que la définition d'une valeur TTL (Time To Live) pour les objets, la conservation de versions obsolètes d'objets ou la "rétrogradation" des classes de stockage d'objets.
Cette page décrit la fonctionnalité ainsi que les options disponibles lors de son utilisation. Pour connaître le format général d'un fichier de configuration de cycle de vie, consultez la page décrivant la représentation des ressources de bucket pour JSON ou le format de configuration de cycle de vie pour XML.
Introduction
Pour utiliser la gestion du cycle de vie des objets, vous devez définir une configuration de cycle de vie, laquelle doit être définie sur un bucket. La configuration inclut un ensemble de règles qui s'appliquent aux objets actuels et futurs du bucket. Lorsqu'un objet répond aux critères de l'une des règles, Cloud Storage exécute automatiquement l'action spécifiée sur l'objet. Voici quelques exemples d'utilisation :
- Rétrograder la classe de stockage des objets datant de plus de 365 jours à la classe de stockage Coldline
- Supprimer les objets créés avant le 1er janvier 2019
- Conserver seulement les trois versions les plus récentes de chaque objet d'un bucket en activant la gestion des versions
Configuration du cycle de vie
Chaque configuration de gestion du cycle de vie contient un ensemble de règles. Chaque règle contient une action et une ou plusieurs conditions.
Un objet doit satisfaire toutes les conditions spécifiées dans une règle pour que l'action soit effectuée.
Si vous spécifiez plusieurs règles contenant une même action, celle-ci est exécutée sur un objet s'il satisfait aux conditions de n'importe laquelle de ces règles.
Si les conditions de plusieurs règles sont simultanément remplies pour un même objet, Cloud Storage effectue l'action associée à une seule de ces règles, en fonction des éléments suivants :
- L'opération
Deleteprévaut sur toute opérationSetStorageClass. - L'action
SetStorageClassest prioritaire si elle fait basculer l'objet sur la classe de stockage avec le prix de stockage au repos le plus bas.
Par exemple, si l'une des règles fait passer l'objet à la classe de stockage Nearline et qu'une autre règle le fait passer à la classe de stockage Coldline, alors que les deux règles utilisent exactement la même condition, l'objet passe toujours au stockage Coldline lorsque la condition est remplie.
- L'opération
Nous vous recommandons de tester les règles de cycle de vie sur les données de développement avant de les appliquer en production pour vous assurer qu'elles n'effectuent pas d'actions selon des jeux de conditions inattendus. Si cela n'est pas possible, vous devez effectuer un test sur un petit sous-ensemble de vos données de production en utilisant les conditions
matchesPrefixoumatchesSuffixdans vos règles.La prise en compte des modifications apportées à la configuration du cycle de vie d'un bucket peut prendre jusqu'à 24 heures. Pendant ce laps de temps, la gestion du cycle de vie des objets peut encore opérer des actions basées sur l'ancienne configuration.
Par exemple, si vous modifiez une condition
agede 10 jours pour la passer à 20 jours, un objet datant de 11 jours pourra être supprimé par la gestion du cycle de vie des objets jusqu'à 24 heures plus tard, sur la base de l'ancienne configuration.
Pour les cas d'utilisation, consultez Exemples de configuration de gestion du cycle de vie des objets.
Actions du cycle de vie
Une règle de cycle de vie spécifie exactement l'une des actions suivantes :
Supprimer
L'action Delete supprime un objet lorsque celui-ci remplit toutes les conditions spécifiées dans la règle de cycle de vie. Par défaut, lorsque vous supprimez un objet actif, il est supprimé de façon réversible et Cloud Storage le conserve pendant sept jours. Vous pouvez restaurer cet objet supprimé de façon réversible pendant la durée de conservation associée à la suppression réversible.
Exception : Dans les buckets où la gestion des versions d'objets est activée, le fait de supprimer la version active d'un objet entraîne la création d'une version archivée, tandis que la suppression d'une version archivée supprime cette version du bucket. Reportez-vous à la documentation sur la configuration de la suppression d'objets pour obtenir un exemple d'utilisation de l'action Delete avec la gestion des versions d'objets.
L'action Delete ne prend pas effet sur un objet tant qu'une obligation de conservation est placée sur cet objet ou que sa règle de conservation n'est pas encore satisfaite. Tant que les conditions de l'action Delete sont satisfaites pour l'objet, l'action Delete est exécutée une fois que l'obligation de conservation de l'objet est levée et qu'une règle de conservation est satisfaite.
SetStorageClass
L'action SetStorageClass modifie la classe de stockage d'un objet et met à jour les date et heure de modification lorsque celui-ci remplit toutes les conditions spécifiées dans la règle de cycle de vie.
SetStorageClass permet les transitions de classe de stockage suivantes :
| Classe de stockage d'origine | Nouvelle classe de stockage |
|---|---|
| Stockage à disponibilité limitée durable (DRA) | Stockage Nearline Stockage Coldline Stockage Archive Stockage multirégional/Stockage régional1 |
| Stockage standard, stockage multirégional ou stockage régional | Stockage Nearline Stockage Coldline Stockage Archive |
| Stockage Nearline | Stockage Coldline Stockage Archive |
| Stockage Coldline | Stockage Archive |
1 Pour les buckets appartenant à un emplacement régional, la nouvelle classe de stockage ne peut pas correspondre à un stockage multirégional. Pour les buckets appartenant à un emplacement multirégional ou birégional, la nouvelle classe de stockage ne peut pas correspondre à un stockage régional.
Cloud Storage ne vérifie pas l'exactitude de la transition entre classes de stockage. Cela signifie que vous pouvez spécifier une transition de classe de stockage non répertoriée dans le tableau ci-dessus, mais que la transition ne se produira pas. Nous vous recommandons de vérifier que vos règles de cycle de vie utilisent l'une des transitions de classe de stockage listées.
Annuler les importations en plusieurs parties incomplètes
L'action AbortIncompleteMultipartUpload annule une importation en plusieurs parties incomplète et supprime les parties associées lorsque l'importation en plusieurs parties remplit les conditions spécifiées dans la règle de cycle de vie.
Seules les conditions de cycle de vie suivantes peuvent être utilisées avec cette action :
Toute tentative de création d'une règle utilisant l'action AbortIncompleteMultipartUpload conjointement avec d'autres conditions entraîne une erreur.
Conditions du cycle de vie
Une règle de cycle de vie inclut des conditions qu'un objet doit remplir avant que l'action définie dans la règle ne s'exécute. Les règles de cycle de vie sont compatibles avec les conditions suivantes :
agecreatedBeforecustomTimeBeforedaysSinceCustomTimedaysSinceNoncurrentTimeisLivematchesStorageClassmatchesPrefixetmatchesSuffixnoncurrentTimeBeforenumNewerVersions
Toutes les conditions sont facultatives, mais au moins une condition est requise. Si vous tentez de définir une configuration de cycle de vie non valide, en utilisant par exemple une action ou une condition inexistante, vous recevez une réponse d'erreur 400 Bad request et toute configuration de cycle de vie existante reste en place.
age
La condition age est satisfaite lorsqu'une ressource atteint l'âge spécifié (en jours). L'âge est mesuré à partir de l'heure et de la date de création de la ressource.
Pour les objets, cette valeur correspond à la date et l'heure auxquelles l'objet a été écrit dans le bucket, par exemple la fin de l'importation.
- L'âge d'un objet n'est pas affecté par le fait que l'objet devienne une version archivée.
Pour les importations en plusieurs parties, l'heure de création correspond à l'heure à laquelle l'importation est lancée.
Par exemple, si une ressource est créée le 10/01/2022 à 10:00 UTC et que la condition age est définie sur 10 jours, la condition est satisfaite pour la ressource à partir du 20/01/2022 à 10:00 UTC.
createdBefore
La condition createdBefore est remplie lorsqu'un objet est créé avant minuit à la date spécifiée au format UTC.
customTimeBefore
La condition customTimeBefore est satisfaite lorsque la date indiquée dans les métadonnées Custom-Time d'un objet est antérieure à la date spécifiée dans cette condition. Cette condition est définie au format YYYY-MM-DD.
La condition