Todos los productos
Search
Centro de documentos

Object Storage Service:PutBucketLifecycle

Última actualización: Sep 08, 2026

Cree reglas de ciclo de vida con base en la fecha de última modificación o de último acceso. Estas reglas convierten periódicamente la clase de almacenamiento de los objetos de un bucket o eliminan los objetos y las partes caducados para ahorrar costos de almacenamiento. En este tema se describe cómo llamar a la operación PutBucketLifecycle para configurar una regla de ciclo de vida en un bucket.

Notas

  • La operación PutBucketLifecycle sobrescribe las reglas de ciclo de vida existentes. Por ejemplo, si un bucket tiene una regla llamada Rule1 y desea agregar otra llamada Rule2, siga estos pasos:

    1. Llame a la operación GetBucketLifecycle para obtener la configuración de Rule1.

    2. Agregue Rule2 junto con Rule1.

    3. Llame a la operación PutBucketLifecycle para aplicar la nueva configuración que incluye tanto Rule1 como Rule2.

  • Establezca un tiempo de caducidad para los objetos y las partes. Las partes son fragmentos no confirmados de cargas multiparte.

  • Las reglas se pueden asociar según la fecha de último acceso o de última modificación.

Permisos

De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos completos. Los usuarios o roles de RAM asociados a una cuenta de Alibaba Cloud no cuentan con ningún permiso de manera predeterminada. La cuenta de Alibaba Cloud o su administrador deben otorgar los permisos de operación mediante RAM policies o Bucket Policy.

API

Acción

Descripción

PutBucketLifecycle

oss:PutBucketLifecycle

Configura las reglas de ciclo de vida de un bucket.

Sintaxis de la solicitud

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>

Encabezados de solicitud

Nombre

Tipo

Obligatorio

Ejemplo

Descripción

x-oss-allow-same-action-overlap

string

No

true

Indica si se permite que las reglas de ciclo de vida tengan prefijos superpuestos. Valores válidos:

  • true: se permiten los prefijos superpuestos.

  • false: no se permiten los prefijos superpuestos.

Esta operación utiliza encabezados de solicitud comunes, como Date y Authorization. Para más información, consulte Common request headers.

Elementos de la solicitud

Nombre

Tipo

Obligatorio

Ejemplo

Descripción

LifecycleConfiguration

container

Sí

N/A

Contenedor de las configuraciones de ciclo de vida. Se pueden configurar hasta 1,000 reglas.

Nodo secundario: Rule

Nodo primario: ninguno

Rule

container

Sí

N/A

Contenedor de una regla de ciclo de vida. El tiempo de caducidad de un objeto debe ser posterior al momento en que se convierte a la clase de almacenamiento Infrequent Access (IA) o Archive Storage.

Nodos secundarios: ID, Prefix, Status y Expiration

Nodo primario: LifecycleConfiguration

ID

string

No

rule1

Identificador único de la regla. Puede tener hasta 255 caracteres. Si no especifica este elemento o lo deja vacío, OSS genera automáticamente un identificador único.

Nodo secundario: ninguno

Nodo primario: Rule

Prefix

string

No

tmp/

Prefijo que indica los objetos a los que aplica la regla. No es posible asignar el mismo prefijo a distintas reglas.

  • Si especifica Prefix, la regla solo aplica a los objetos del bucket que tienen ese prefijo.

  • Si deja Prefix vacío, la regla aplica a todos los objetos del bucket.

Nodo secundario: ninguno

Nodo primario: Rule

Status

string

Sí

Enabled

Indica si se habilita la regla. Valores válidos:

  • Enabled: la regla está habilitada. OSS la ejecuta periódicamente.

  • Disabled: la regla está deshabilitada. OSS la ignora.

Nodo primario: Rule

Expiration

container

No

N/A

Define las propiedades de caducidad de un objeto. En un bucket con control de versiones habilitado, el tiempo de caducidad indicado solo aplica a la versión actual del objeto.

El tiempo de caducidad de un objeto debe ser posterior al momento en que se convierte a la clase de almacenamiento IA o Archive Storage.

Nodos secundarios: Days, CreatedBeforeDate o ExpiredObjectDeleteMarker

Nodo primario: Rule

Days

Entero positivo

Days y CreatedBeforeDate son mutuamente excluyentes

1

Número de días transcurridos desde la última actualización del objeto para que la regla de ciclo de vida surta efecto.

Si el parámetro IsAccessTime se establece en true en la solicitud, este valor representa los días transcurridos desde el último acceso al objeto para que la regla surta efecto.

Nodos primarios: Expiration o AbortMultipartUpload

CreatedBeforeDate

string

CreatedBeforeDate y Days son mutuamente excluyentes

2002-10-11T00:00:00.000Z

Fecha específica. OSS aplica la regla de ciclo de vida a los datos cuya última actualización ocurrió antes de esta fecha. Debe usar el formato yyyy-MM-ddT00:00:00.000Z.

La fecha debe estar en UTC y cumplir con el estándar ISO 8601. La hora debe ser 00:00:00.

Nodos primarios: Expiration o AbortMultipartUpload

ExpiredObjectDeleteMarker

string

No

true

Indica si se eliminan automáticamente los marcadores de eliminación caducados. Valores válidos:

  • true: elimina automáticamente los marcadores de eliminación caducados. Si establece este valor en true, no puede especificar Days ni CreatedBeforeDate.

  • false: no elimina automáticamente los marcadores de eliminación caducados. Si establece este valor en false, debe especificar Days o CreatedBeforeDate.

Nodo primario: Expiration

Transition

container

No

N/A

Define cuándo OSS convierte la clase de almacenamiento de un objeto durante su ciclo de vida válido.

Los objetos Standard de un bucket Standard se pueden convertir a la clase de almacenamiento IA, Archive o Cold Archive. Sin embargo, el momento de conversión a Archive debe ser posterior al de conversión a IA. Por ejemplo, si establece Days en 30 para la transición a IA, debe asignar a Days un valor mayor que 30 para la transición a Archive.

Nodo primario: Rule

Nodos secundarios: Days, CreatedBeforeDate y StorageClass

Importante
Importante

Especifique Days o CreatedBeforeDate, pero no ambos.

StorageClass

string

Obligatorio si el nodo primario es Transition o NoncurrentVersionTransition

IA

Clase de almacenamiento a la que se convierte el objeto. Valores válidos:

  • IA: Infrequent Access

  • Archive: Archive Storage

  • ColdArchive: Cold Archive

  • DeepColdArchive: Deep Cold Archive

Importante

La clase de almacenamiento de los objetos de un bucket IA se puede convertir a Archive Storage o Cold Archive, pero no a Standard.

Nodo primario: Transition

AbortMultipartUpload

container

No

N/A

Define las propiedades de caducidad de las partes que no se confirmaron en una carga multiparte.

Nodos secundarios: Days o CreatedBeforeDate

Nodo primario: Rule

Tag

container

No

N/A

Etiquetas de objeto a las que aplica la regla. Es posible especificar varias etiquetas.

Nodo primario: Rule

Nodos secundarios: Key y Value

Key

string

Obligatorio si el nodo primario es Tag

TagKey1

Clave de la etiqueta del objeto.

Nodo primario: Tag

Value

string

Obligatorio si el nodo primario es Tag

TagValue1

Valor de la etiqueta del objeto.

Nodo primario: Tag

NoncurrentVersionExpiration

container

No

N/A

Define las propiedades de caducidad de las versiones anteriores de los objetos.

Nodo secundario: NoncurrentDays

NoncurrentVersionTransition

container

No

N/A

Define cuándo OSS convierte la clase de almacenamiento de las versiones anteriores de un objeto a IA o Archive Storage.

El momento de conversión de un objeto Standard a Archive debe ser posterior al de conversión a IA.

Nodos secundarios: NoncurrentDays y StorageClass

NoncurrentDays

string

Obligatorio si el nodo primario es NoncurrentVersionExpiration o NoncurrentVersionTransition

10

Número de días transcurridos desde que un objeto se convirtió en versión anterior para que la regla de ciclo de vida surta efecto.

Si el parámetro IsAccessTime se establece en true en la solicitud, este valor representa los días transcurridos desde el último acceso al objeto para que la regla surta efecto.

Nodos primarios: NoncurrentVersionTransition y NoncurrentVersionExpiration

IsAccessTime

string

No

true

Indica si la regla se asocia según la fecha de último acceso. Valores válidos:

  • true: asocia la regla según la fecha de último acceso del objeto.

  • false (predeterminado): asocia la regla según la fecha de última modificación del objeto.

Nodos primarios: Transition o NoncurrentVersionTransition.

ReturnToStdWhenVisit

string

No

false

Indica si la clase de almacenamiento de un objeto no Standard vuelve a Standard cuando se accede nuevamente a él. Este parámetro solo es válido cuando IsAccessTime se establece en true. Valores válidos:

  • true: la clase de almacenamiento del objeto se convierte a Standard.

  • false (predeterminado): la clase de almacenamiento del objeto permanece como no Standard.

Nodos primarios: Transition o NoncurrentVersionTransition.

AllowSmallFile

string

No

false

Cuando configura una regla de ciclo de vida basada en la fecha de último acceso, este parámetro indica si los objetos menores a 64 KB se convierten a la clase de almacenamiento IA, Archive o Cold Archive. Valores válidos:

  • true (predeterminado): convierte todos los objetos, incluidos los menores a 64 KB. Estos últimos se facturan como si tuvieran 64 KB, mientras que los de 64 KB o más se facturan según su tamaño real. Establecer este parámetro en true podría aumentar sus costos de almacenamiento.

  • false: no convierte los objetos menores a 64 KB.

Nodos primarios: Transition o NoncurrentVersionTransition.

Filter

container

No

N/A

Contenedor de los parámetros de condición de esta regla de exclusión. Especifique un contenedor como máximo o déjelo vacío.

Nodo primario: Rule

Nodo secundario: Not

Not

container

No

N/A

Si un objeto cumple esta condición, la regla se omite. Si configura Filter, debe especificar exactamente un nodo Not dentro de Filter.

Nodo primario: Filter

Nodos secundarios: Prefix y Tag

Prefix

string

Sí

tmp/not/

Prefijo de objeto al que aplica esta regla de exclusión. Este parámetro no puede estar vacío.

  • Si configura Prefix en el nodo Rule, el Prefix del nodo Not debe comenzar con el Prefix del nodo Rule. Por ejemplo, si el Prefix del nodo Rule es dir, el Prefix del nodo Not debe comenzar con dir, como dir1 o dir2.

  • Si no configura Tag en el nodo Not, el Prefix del nodo Not no puede ser igual al Prefix del nodo Rule.

Nodo primario: Not

Nodo secundario: ninguno

Tag

container

No

N/A

Etiqueta de objeto a la que aplica esta regla de exclusión. Especifique una etiqueta como máximo o deje este parámetro vacío.

ObjectSizeGreaterThan

Entero positivo

No

500

Tamaño mínimo de objeto al que aplica esta regla. Este parámetro es opcional y solo se puede especificar uno. Si también establece ObjectSizeLessThan, el sistema comprueba la relación de tamaño entre ambos.

Este parámetro es mutuamente excluyente con AllowSmallFile.

Nodo primario: Filter

Nodo secundario: ninguno

ObjectSizeLessThan

Entero positivo

No

64000

Tamaño máximo de objeto al que aplica esta regla. Este parámetro es opcional y solo se puede especificar uno. Si también establece ObjectSizeGreaterThan, el sistema comprueba la relación de tamaño entre ambos.

Este parámetro es mutuamente excluyente con AllowSmallFile.

Nodo primario: Filter

Nodo secundario: ninguno

Encabezados de respuesta

La respuesta solo contiene encabezados de respuesta comunes. Para más información, consulte Common response headers.

Ejemplos

Ejemplos de solicitud

Ejemplo 1: convertir la clase de almacenamiento de los objetos según la fecha de última modificación

En el siguiente ejemplo, la clase de almacenamiento de los objetos con el prefijo log se convierte a IA 30 días después de su última modificación.

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>

Ejemplo 2: eliminar objetos según la fecha de última modificación

En el siguiente ejemplo, los objetos con el prefijo log se eliminan 90 días después de su última modificación.

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>

Ejemplo 3: convertir la clase de almacenamiento de los objetos y eliminarlos según la fecha de última modificación

La siguiente regla realiza estas acciones en los objetos con el prefijo log: convierte su clase de almacenamiento a IA 30 días después de la última modificación, los pasa a Archive Storage después de 60 días y los elimina tras 3,600 días.

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>

Ejemplo 4: eliminar versiones anteriores de objetos y limpiar marcadores de eliminación según la fecha de última modificación

La siguiente regla elimina los objetos 5 días después de convertirse en versiones anteriores y limpia los marcadores de eliminación una vez que se borran todas las versiones anteriores.

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>

Ejemplo 5: convertir la clase de almacenamiento de los objetos y eliminarlos según la fecha de última modificación, excepto los que tienen un prefijo y una etiqueta específicos

La siguiente regla utiliza el elemento NOT para filtrar. Aplica a todos los objetos del bucket, excepto a los que tienen el prefijo 'log' y la etiqueta Key=key1, Value=value1. La clase de almacenamiento de los objetos coincidentes se convierte a Archive Storage 30 días después de su última modificación, y se eliminan tras 100 días.

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>

Ejemplo 6: convertir la clase de almacenamiento de los objetos según la fecha de último acceso

La siguiente regla convierte la clase de almacenamiento de los objetos con el prefijo log a IA 30 días después de su último acceso. Cuando se accede nuevamente a estos objetos, su clase de almacenamiento vuelve a Standard.

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>

Ejemplo 7: eliminar partes según la fecha de última modificación

La siguiente regla elimina las partes de un bucket creadas hace más de 30 días.

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>

Ejemplo 8: eliminar objetos con prefijos superpuestos según la fecha de última modificación

La siguiente regla indica que los objetos de la carpeta dir1/ se eliminan 180 días después de su última modificación, mientras que los de la subcarpeta dir1/dir2/ se eliminan 30 días después de su última modificación.

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>
Nota

Si x-oss-allow-same-action-overlap se establece en false, OSS detecta que los objetos de la carpeta dir1/dir2/ coinciden con dos reglas de eliminación. En ese caso, OSS rechaza la configuración de ambas reglas de ciclo de vida y reporta el error Overlap for same action type Expiration.

Ejemplo de respuesta

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

Llame a esta operación mediante los kits de desarrollo de software (SDK) de los siguientes lenguajes de programación.

Herramienta de línea de comandos ossutil

Para conocer el comando de ossutil correspondiente a la operación PutBucketLifecycle, consulte put-bucket-lifecycle.

Referencias

Para más información sobre las reglas de ciclo de vida, consulte Lifecycle rule overview.

Códigos de error

Código de error

Código de estado HTTP

Descripción

InvalidArgument

400

Posibles causas de este error:

  • OSS admite convertir objetos Standard de un bucket Standard a la clase de almacenamiento IA o Archive Storage. Es posible configurar reglas para convertir un objeto a IA y a Archive Storage en momentos distintos, pero la conversión a Archive Storage debe programarse después que la conversión a IA.

  • El tiempo de expiración de un objeto debe ser posterior al momento en que se convierte a la clase de almacenamiento IA o Archive Storage.

AccessDenied

403

No cuenta con los permisos obligatorios. Solo los usuarios con el permiso oss:PutBucketLifecycle pueden configurar reglas de ciclo de vida.

MalforedXML

400

Un error de validación XML en la configuración del ciclo de vida genera el error MalformedXML. Por ejemplo, este error ocurre si configura una regla de ciclo de vida basada en el último acceso de un bucket antes de habilitar el seguimiento de accesos para ese bucket.