Tous les produits
Search
Centre de documentation

Object Storage Service:PutBucketLifecycle

Dernière mise à jour :Aug 18, 2026

Configure les règles de cycle de vie d'un bucket. Utilisez l'opération PutBucketLifecycle pour convertir périodiquement les classes de stockage des objets ou supprimer les objets et parties expirés en fonction de leur heure de dernière modification ou de leur heure de dernier accès, afin de réduire les coûts de stockage.

Notes

  • L'opération PutBucketLifecycle utilise une sémantique d'écrasement. Pour ajouter une nouvelle règle (Rule2) tout en conservant une règle existante (Rule1) :

    1. Appelez GetBucketLifecycle pour récupérer la configuration existante de Rule1.

    2. Ajoutez Rule2 à la configuration existante.

    3. Appelez PutBucketLifecycle avec Rule1 et Rule2 pour mettre à jour le bucket.

  • Les règles de cycle de vie peuvent faire expirer les objets et les parties issues de téléchargements multipart incomplets.

  • Les règles peuvent être basées sur l'heure du dernier accès ou l'heure de la dernière modification.

Permissions

Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations. Les utilisateurs RAM ou les rôles RAM associés à un compte Alibaba Cloud ne disposent d'aucune autorisation par défaut. Le compte Alibaba Cloud ou l'administrateur du compte doit accorder les autorisations d'exploitation via les politiques RAM ou la politique de bucket.

API

Action

Description

PutBucketLifecycle

oss:PutBucketLifecycle

Configure les règles de cycle de vie d'un bucket.

Syntaxe de la requête

PUT /?lifecycle HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Authorization: SignatureValue 
Host: BucketName.oss.aliyuncs.com
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>RuleID</ID>
    <Prefix>Prefix</Prefix>
    <Status>Status</Status>
    <Expiration>
      <Days>Days</Days>
    </Expiration>
    <Transition>
      <Days>Days</Days>
      <StorageClass>StorageClass</StorageClass>
    </Transition>
    <AbortMultipartUpload>
      <Days>Days</Days>
    </AbortMultipartUpload>
  </Rule>
</LifecycleConfiguration>

En-têtes de requête

En-tête

Type

Obligatoire

Exemple

Description

x-oss-allow-same-action-overlap

String

Non

true

Indique si les préfixes qui se chevauchent sont autorisés. Valeurs possibles :

  • true : Les préfixes qui se chevauchent sont autorisés.

  • false : Les préfixes qui se chevauchent ne sont pas autorisés.

Cette requête utilise également des en-têtes communs tels que Date et Authorization, décrits dans En-têtes HTTP communs.

Éléments de requête

Élément

Type

Obligatoire

Exemple

Description

LifecycleConfiguration

Container

Oui

N/A

Conteneur pour les configurations de cycle de vie. Prend en charge jusqu'à 1 000 règles de cycle de vie.

Nœuds enfants : Rule

Nœuds parents : aucun

Rule

Container

Oui

N/A

Conteneur pour une règle de cycle de vie. La période avant suppression doit être supérieure à la période de transition vers IA ou Archive.

Nœuds enfants : ID, Prefix, Status et Expiration

Nœuds parents : LifecycleConfiguration

ID

String

Non

rule1

Identifiant de la règle de cycle de vie. Longueur maximale : 255 caractères. Si non spécifié, OSS génère automatiquement un identifiant unique.

Nœuds enfants : aucun

Nœuds parents : Rule

Prefix

String

Non

tmp/

Préfixe du nom d'objet auquel cette règle s'applique. Les préfixes des différentes règles ne doivent pas se chevaucher.

  • Si spécifié, la règle s'applique uniquement aux objets dont le préfixe correspond.

  • Si non spécifié, la règle s'applique à tous les objets du bucket.

Nœuds enfants : aucun

Nœuds parents : Rule

Status

String

Oui

Enabled

Indique si la règle est activée. Valeurs possibles :

  • Enabled : OSS exécute la règle périodiquement.

  • Disabled : OSS ignore la règle.

Nœuds parents : Rule

Expiration

Container

Non

N/A

Opération de suppression à effectuer sur les objets correspondants lorsqu'ils expirent. Dans les buckets avec gestion des versions, cela s'applique uniquement aux versions actuelles.

La période avant suppression doit être supérieure à la période de transition vers IA ou Archive.

Nœuds enfants : Days, CreatedBeforeDate ou ExpiredObjectDeleteMarker

Nœuds parents : Rule

Days

Entier positif

Days ou CreatedBeforeDate est requis

1

Nombre de jours après la date de dernière modification avant que la règle ne prenne effet.

Si IsAccessTime est défini sur true, la règle prend effet en fonction du nombre de jours après le dernier accès.

Nœuds parents : Expiration ou AbortMultipartUpload

CreatedBeforeDate

String

Days ou CreatedBeforeDate est requis

2002-10-11T00:00:00.000Z

Date avant laquelle la règle s'applique. OSS effectue l'opération sur les objets modifiés pour la dernière fois avant cette date. Format : yyyy-MM-ddT00:00:00.000Z.

L'heure doit être 00:00:00 UTC au format ISO 8601.

Nœuds parents : Expiration ou AbortMultipartUpload

ExpiredObjectDeleteMarker

String

Non

true

Indique si les marqueurs de suppression expirés sont automatiquement supprimés. Valeurs possibles :

  • true : Les marqueurs de suppression expirés sont automatiquement supprimés. Si vous définissez cet élément sur true, vous ne pouvez pas spécifier l'élément Days ni CreatedBeforeDate.

  • false : Les marqueurs de suppression expirés ne sont pas automatiquement supprimés. Si vous définissez cet élément sur false, vous devez spécifier l'élément Days ou CreatedBeforeDate.

Nœuds parents : Expiration

Transition

Container

Non

N/A

Conversion de la classe de stockage pour les objets correspondants lorsqu'ils expirent.

Les objets Standard peuvent passer à IA, Archive ou Cold Archive. La période de transition vers Archive doit être supérieure à la période de transition vers IA. Par exemple, si les objets passent à IA après 30 jours, ils doivent passer à Archive après plus de 30 jours.

Nœuds parents : Rule

Nœuds enfants : Days, CreatedBeforeDate et StorageClass

Important
Important

Days ou CreatedBeforeDate est requis.

StorageClass

String

Oui si Transition ou NoncurrentVersionTransition est spécifié

IA

Classe de stockage vers laquelle les objets sont convertis. Valeurs possibles :

  • IA

  • Archive

  • ColdArchive

  • DeepColdArchive

Important

Vous ne pouvez convertir la classe de stockage des objets d'un bucket IA qu'en Archive ou Cold Archive.

Nœuds parents : Transition

AbortMultipartUpload

Container

Non

N/A

Opération permettant de supprimer les parties issues de téléchargements multipart incomplets lorsqu'ils expirent.

Nœuds enfants : Days ou CreatedBeforeDate

Nœuds parents : Rule

Tag

Container

Non

N/A

Tag des objets auxquels la règle de cycle de vie s'applique. Vous pouvez spécifier plusieurs tags.

Nœuds parents : Rule

Nœuds enfants : Key et Value

Key

String

Oui si l'élément Tag est spécifié

TagKey1

Clé du tag spécifié pour les objets.

Nœuds parents : Tag

Value

String

Oui si l'élément Tag est spécifié

TagValue1

Valeur du tag spécifié pour les objets.

Nœuds parents : Tag

NoncurrentVersionExpiration

Container

Non

N/A

Opération permettant de supprimer les versions précédentes des objets correspondants lorsqu'elles expirent.

Nœuds enfants : NoncurrentDays

NoncurrentVersionTransition

Container

Non

N/A

Conversion de la classe de stockage pour les versions précédentes des objets correspondants lorsqu'elles expirent. Les versions précédentes peuvent passer à IA ou Archive.

La période de transition vers Archive doit être supérieure à la période de transition vers IA pour les versions précédentes.

Nœuds enfants : NoncurrentDays et StorageClass

NoncurrentDays

String

Oui si NoncurrentVersionExpiration ou NoncurrentVersionTransition est spécifié

10

Nombre de jours après lesquels les objets deviennent des versions précédentes avant que la règle ne prenne effet.

Si IsAccessTime est défini sur true, NoncurrentDays prend effet en fonction du nombre de jours après le dernier accès.

Nœuds parents : NoncurrentVersionTransition et NoncurrentVersionExpiration

IsAccessTime

String

Non

true

Indique si la règle de cycle de vie s'applique aux objets en fonction de leur heure de dernier accès. Valeurs possibles :

  • true : La règle s'applique aux objets en fonction de leur heure de dernier accès.

  • false (par défaut) : La règle s'applique aux objets en fonction de leur heure de dernière modification.

Nœuds parents : Transition ou NoncurrentVersionTransition

ReturnToStdWhenVisit

String

Non

false

Indique si les objets non Standard sont reconvertis en Standard lors de l'accès. Prend effet uniquement lorsque IsAccessTime est défini sur true. Valeurs possibles :

  • true : change la classe de stockage des objets en Standard.

  • false : ne change pas la classe de stockage des objets en Standard.

Nœuds parents : Transition ou NoncurrentVersionTransition

AllowSmallFile

String

Non

false

Indique si les objets de moins de 64 Ko sont convertis en IA, Archive ou Cold Archive en fonction de l'heure du dernier accès. Valeurs possibles :

  • true : convertit les objets de moins de 64 Ko. La taille minimale facturée est de 64 Ko ; les objets de moins de 64 Ko sont facturés comme s'ils faisaient 64 Ko. Cela peut augmenter les frais de stockage.

  • false : ne change pas la classe de stockage des objets de moins de 64 Ko.

Nœuds parents : Transition ou NoncurrentVersionTransition

Filter

Container

Non

N/A

Conteneur pour l'élément Not utilisé pour filtrer les objets. Prend en charge au maximum un nœud Not.

Nœuds parents : Rule

Nœuds enfants : Not

Not

Container

Non

N/A

Condition d'exclusion pour la règle de cycle de vie. Un seul nœud Not est autorisé par Filter.

Nœuds parents : Filter

Nœuds enfants : Prefix et Tag

Prefix

String

Oui

tmp/not/

Préfixe du nom d'objet exclu de la règle de cycle de vie. Ne peut pas être vide.

  • Si le préfixe de la règle (Rule Prefix) est défini, le préfixe Not (Not Prefix) doit commencer par celui-ci. Par exemple, si le préfixe de la règle est dir, le préfixe Not doit commencer par dir, comme dir1 ou dir2.

  • Si aucun tag n'est spécifié sur le nœud Not, le préfixe Not doit différer du préfixe de la règle.

Nœuds parents : Not

Nœuds enfants : aucun

Tag

Container

Non

N/A

Tag des objets exclus. Prend en charge au maximum un tag.

ObjectSizeGreaterThan

Entier positif

Non

500

Taille minimale de l'objet à laquelle cette règle s'applique. Vous pouvez spécifier une seule valeur ou laisser cet élément vide. Si ce paramètre et le paramètre ObjectSizeLessThan sont tous deux définis, le système vérifie que la taille de l'objet se situe dans la plage spécifiée : supérieure à la taille minimale et inférieure à la taille maximale.

Ce paramètre et le paramètre AllowSmallFile sont mutuellement exclusifs.

Nœud parent : Filter

Nœud enfant : aucun

ObjectSizeLessThan

Entier positif

Non

64000

Taille maximale de l'objet à laquelle cette règle s'applique. Vous pouvez spécifier une seule valeur ou laisser cet élément vide. Si ce paramètre et le paramètre ObjectSizeGreaterThan sont tous deux définis, le système vérifie que la taille de l'objet se situe dans la plage spécifiée : supérieure à la taille minimale et inférieure à la taille maximale.

Ce paramètre et le paramètre AllowSmallFile sont mutuellement exclusifs.

Nœud parent : Filter

Nœud enfant : aucun

En-têtes de réponse

La réponse contient uniquement des en-têtes de réponse communs. Pour plus d'informations, consultez En-têtes de réponse communs.

Exemples

Exemples de requêtes

Exemple 1 : Configurer une règle de cycle de vie basée sur l'heure de dernière modification pour uniquement convertir la classe de stockage des objets

Configurez une règle de cycle de vie pour convertir les objets dont le préfixe est log en IA 30 jours après leur dernière modification :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Mon, 6 May 2019 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Transition>
      <Days>30</Days>
      <StorageClass>IA</StorageClass>
    </Transition>    
  </Rule>
</LifecycleConfiguration>

Exemple 2 : Configurer une règle de cycle de vie basée sur l'heure de dernière modification pour uniquement supprimer des objets

Configurez une règle de cycle de vie pour supprimer les objets dont le préfixe est log 90 jours après leur dernière modification :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <Days>90</Days>
    </Expiration>    
 </Rule>
</LifecycleConfiguration>

Exemple 3 : Configurer une règle de cycle de vie basée sur l'heure de dernière modification pour convertir la classe de stockage des objets et les supprimer

Configurez une règle de cycle de vie pour convertir les objets dont le préfixe est log en IA après 30 jours, puis en Archive après 60 jours, et les supprimer après 3 600 jours :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Transition>
      <Days>30</Days>
      <StorageClass>IA</StorageClass>
    </Transition>
    <Transition>
      <Days>60</Days>
      <StorageClass>Archive</StorageClass>
    </Transition>
    <Expiration>
      <Days>3600</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>

Exemple 4 : Configurer une règle de cycle de vie basée sur l'heure de dernière modification pour supprimer les versions précédentes des objets et retirer les marqueurs de suppression

Configurez une règle de cycle de vie pour supprimer les versions précédentes 5 jours après qu'elles soient devenues non actuelles et retirer les marqueurs de suppression expirés :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix></Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
    </Expiration>
    <NoncurrentVersionExpiration>
      <NoncurrentDays>5</NoncurrentDays>
    </NoncurrentVersionExpiration>    
  </Rule>
</LifecycleConfiguration>

Exemple 5 : Configurer une règle de cycle de vie basée sur l'heure de dernière modification pour convertir la classe de stockage des objets et les supprimer, en excluant les objets dont les noms contiennent des préfixes spécifiques ou qui possèdent des tags spécifiques

Configurez une règle de cycle de vie pour convertir les objets en Archive après 30 jours et les supprimer après 100 jours, en excluant les objets avec le préfixe log et le tag key1=value1 à l'aide du filtre Not :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix></Prefix>
    <Status>Enabled</Status>
    <Filter>
      <Not>
        <Prefix>log</Prefix>
        <Tag><Key>key1</Key><Value>value1</Value></Tag>
      </Not>
    </Filter>    
    <Transition>
      <Days>30</Days>
      <StorageClass>Archive</StorageClass>
    </Transition>
    <Expiration>
      <Days>100</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>

Exemple 6 : Configurer une règle de cycle de vie basée sur l'heure du dernier accès pour convertir la classe de stockage des objets

Configurez une règle de cycle de vie pour convertir les objets dont le préfixe est log en IA 30 jours après le dernier accès, et les restaurer en Standard lors du prochain accès :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Transition>
      <Days>30</Days>
      <StorageClass>IA</StorageClass>
      <IsAccessTime>true</IsAccessTime>
      <ReturnToStdWhenVisit>true</ReturnToStdWhenVisit>
    </Transition>
  </Rule>
</LifecycleConfiguration>

Exemple 7 : Configurer une règle de cycle de vie basée sur l'heure de dernière modification pour supprimer des parties

Configurez une règle de cycle de vie pour supprimer les parties issues de téléchargements multipart incomplets datant de plus de 30 jours :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>/</Prefix>
    <Status>Enabled</Status>    
    <AbortMultipartUpload>
      <Days>30</Days>
    </AbortMultipartUpload>
 </Rule>
</LifecycleConfiguration>

Exemple 8 : Configurer une règle de cycle de vie basée sur l'heure de dernière modification pour supprimer des objets dont les noms contiennent des préfixes qui se chevauchent

Configurez des règles de cycle de vie avec des préfixes qui se chevauchent pour supprimer les objets sous dir1/ après 180 jours et sous dir1/dir2/ après 30 jours :

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
x-oss-allow-same-action-overlap: true
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>Rule1</ID>
    <Prefix>dir1/</Prefix>
    <Status>Status</Status>
    <Expiration>
      <Days>180</Days>
    </Expiration>
  </Rule>
  <Rule>
    <ID>Rule2</ID>
    <Prefix>dir1/dir2/</Prefix>
    <Status>Status</Status>
    <Expiration>
      <Days>30</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>
Remarque

Si l'en-tête x-oss-allow-same-action-overlap est défini sur false, OSS détecte que les objets du sous-répertoire dir1/dir2/ correspondent simultanément à deux règles de suppression. Dans ce cas, OSS rejette les deux règles de suppression et l'erreur Overlap for same action type Expiration est signalée.

Exemples de réponses

HTTP/1.1 200 OK
x-oss-request-id: 7D3435J59A9812BAD56E
Date: Mon, 6 May 2019 15:23:20 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS

SDK OSS

Appelez PutBucketLifecycle à l'aide des SDK OSS suivants :

ossutil

Pour obtenir des informations sur la commande ossutil correspondant à l'opération PutBucketLifecycle, consultez put-bucket-lifecycle.

Référence

Pour plus d'informations sur les règles de cycle de vie, consultez Cycle de vie.

Codes d'erreur

Code d'erreur

Code d'état HTTP

Description

InvalidArgument

400

Causes possibles :

  • Dans un bucket Standard, l'heure de transition vers Archive doit être postérieure à l'heure de transition vers IA.

  • La période avant suppression doit être supérieure à la période de transition vers une classe de stockage.

AccessDenied

403

Vous ne disposez pas de l'autorisation oss:PutBucketLifecycle requise pour configurer les règles de cycle de vie.

MalforedXML

400

L'erreur MalformedXML est renvoyée lorsque la validation XML de la règle de cycle de vie échoue. Par exemple, la configuration d'une règle basée sur l'heure du dernier accès sans activer le suivi des accès déclenche cette erreur.