

# Administración del ciclo de vida de los objetos
<a name="object-lifecycle-mgmt"></a>

S3 Lifecycle le ayuda a almacenar objetos de forma rentable a lo largo de su ciclo de vida mediante la transición a clases de almacenamiento de menor costo o la eliminación de los objetos vencidos en su nombre. Para administrar el ciclo de vida de sus objetos, cree una *configuración de S3 Lifecycle* para su bucket. La configuración de S3 Lifecycle es un conjunto de reglas que definen acciones que Amazon S3 aplica a un grupo de objetos. Existen dos tipos de acciones:
+ **Acciones de transición**: estas acciones definen el momento en que los objetos pasan a otra clase de almacenamiento. Por ejemplo, podría decidir pasar objetos a la clase de almacenamiento S3 Standard-IA 30 días después de su creación o archivar objetos en la clase de almacenamiento S3 Glacier Flexible Retrieval un año después de su creación. Para obtener más información, consulte [Descripción y administración de clases de almacenamiento de Amazon S3](storage-class-intro.md). 

  Hay costos asociados con las solicitudes de transición de ciclo de vida. Para obtener información acerca de los precios, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).
+ **Acciones de vencimiento**: estas acciones definen el momento en que vencen los objetos. Amazon S3 elimina automáticamente los objetos que han vencido. Por ejemplo, puede optar por que los objetos venzan una vez que se hayan almacenado durante el periodo establecido en las normativas. Para obtener más información, consulte [Vencimiento de objetos](lifecycle-expire-general-considerations.md).

  Solo hay costos potenciales asociados a la caducidad del ciclo de vida cuando caducan los objetos de una clase de almacenamiento con una duración de almacenamiento mínima. Para obtener más información, consulte [Cargo por duración mínima del almacenamiento](lifecycle-expire-general-considerations.md#lifecycle-expire-minimum-storage).

**importante**  
**Buckets de uso general**: no puede usar una política de bucket para evitar eliminaciones ni transiciones mediante una regla de S3 Lifecycle. Por ejemplo, aunque la política de bucket deniegue todas las acciones a todas las entidades principales, la configuración de S3 Lifecycle seguirá funcionando con normalidad.

**Objetos existentes y nuevos**  
Cuando añade una configuración de ciclo de vida a un bucket, las reglas de configuración se aplican a los objetos existentes y a los objetos que añade posteriormente. Por ejemplo, si hoy agrega una regla de configuración de Lifecycle con una acción de vencimiento que causa que objetos expiren 30 días después de la creación, Amazon S3 pondrá en cola de eliminación cualquier objeto existente con más de 30 días de antigüedad.

**Cambios en la facturación**  
Si hay algún retraso entre el momento en que un objeto pasa a ser apto para una acción del ciclo de vida y cuando Amazon S3 transfiere o caduca el objeto, los cambios de facturación se aplican tan pronto como el objeto es apto para la acción del ciclo de vida. Por ejemplo, si un objeto está programado para vencer y Amazon S3 no lo finaliza inmediatamente, no se le cobrará el almacenamiento después del tiempo de vencimiento. 

La única excepción a este comportamiento es si tiene una regla de ciclo de vida para realizar la transición a la clase de almacenamiento S3 Intelligent-Tiering. En ese caso, los cambios en la facturación no se producen hasta que el objeto haya pasado a S3 Intelligent-Tiering. Para obtener más información acerca de las reglas de S3 Lifecycle, consulte [Elementos de configuración del ciclo de vida](intro-lifecycle-rules.md). 

**nota**  
No hay cargos por recuperación de datos para las transiciones del ciclo de vida. Sin embargo, existen cargos por ingesta por solicitud cuando se utilizan reglas `PUT`, `COPY` o de ciclo de vida para mover datos a cualquier clase de almacenamiento de S3. Plantéese el costo de ingesta o de transición antes de mover objetos a cualquier clase de almacenamiento. Para obtener más información acerca de las consideraciones sobre costes, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

**Supervisión del efecto de las reglas del ciclo de vida**  
Para supervisar el efecto de las actualizaciones realizadas por las reglas del ciclo de vida activo, consulte [¿Cómo puedo supervisar las acciones que se llevan a cabo según mis reglas de ciclo de vida?](troubleshoot-lifecycle.md#troubleshoot-lifecycle-2).

## Administración del ciclo de vida completo de los objetos
<a name="lifecycle-config-overview-what"></a>

Con las reglas de configuración de S3 Lifecycle puede indicarle a Amazon S3 que pase los objetos a otras clases de almacenamiento más económicas, que los archive o que los elimine. Por ejemplo: 
+ Si carga logs periódicos en un bucket, es posible que la aplicación los necesite durante una semana o un mes. Una vez transcurrido ese tiempo, es posible que desee eliminarlos.
+ Se obtiene acceso a algunos documentos con frecuencia durante un periodo limitado. Posteriormente, se obtendrá acceso a ellos con poca frecuencia. En algún momento, es posible que no necesite acceso en tiempo real a estos objetos, pero la organización o las normativas pueden requerir su archivado durante un periodo específico. Transcurrido dicho periodo, podrá eliminarlos. 
+ Es posible que desee cargar algunos tipos de datos a Amazon S3 para su archivado. Por ejemplo, podría archivar medios digitales, registros financieros y sanitarios, datos de secuencias genómicas sin procesar, copias de seguridad de bases de datos a largo plazo y datos que deben conservarse por motivos de conformidad normativa.

Mediante la combinación de acciones de S3 Lifecycle para administrar el ciclo de vida completo de un objeto. Por ejemplo, supongamos que los objetos que crea tienen un ciclo de vida bien definido. Al principio, se obtiene acceso a los objetos con frecuencia durante un periodo de 30 días. Posteriormente, se obtiene acceso a los objetos con poca frecuencia durante un periodo máximo de 90 días. Transcurrido ese tiempo, los objetos ya no son necesarios, por lo que podría archivarlo o eliminarlos. 

En esta situación, puede crear una regla de S3 Lifecycle en la que especifique la acción de transición inicial a la clase de almacenamiento S3 Intelligent-Tiering, S3 Standard-IA o S3 One Zone-IA, otra acción de transición al almacenamiento S3 Glacier Flexible Retrieval para el archivo y una acción de vencimiento. A medida que se mueven los objetos de una clase de almacenamiento a otra, se ahorra en costos de almacenamiento. Para obtener más información acerca de las consideraciones sobre costes, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Administración del ciclo de vida completo de los objetos](#lifecycle-config-overview-what)
+ [Transición de objetos con Amazon S3 Lifecycle](lifecycle-transition-general-considerations.md)
+ [Vencimiento de objetos](lifecycle-expire-general-considerations.md)
+ [Establecimiento de una configuración de S3 Lifecycle en un bucket](how-to-set-lifecycle-configuration-intro.md)
+ [Interacción de S3 Lifecycle con otras configuraciones de bucket](lifecycle-and-other-bucket-config.md)
+ [Configuración de notificaciones de eventos de S3 Lifecycle](lifecycle-configure-notification.md)
+ [Elementos de configuración del ciclo de vida](intro-lifecycle-rules.md)
+ [Procesamiento de Amazon S3 de los conflictos en las configuraciones del ciclo de vida](lifecycle-conflicts.md)
+ [Ejemplos de configuraciones de S3 Lifecycle](lifecycle-configuration-examples.md)
+ [Solución de problemas de Amazon S3 Lifecycle](troubleshoot-lifecycle.md)

# Transición de objetos con Amazon S3 Lifecycle
<a name="lifecycle-transition-general-considerations"></a>

Puede agregar acciones de transición a una configuración de S3 Lifecycle para indicar a Amazon S3 que traslade objetos a otra clase de almacenamiento de Amazon S3. Para obtener más información acerca de las clases de almacenamiento, consulte [Descripción y administración de clases de almacenamiento de Amazon S3](storage-class-intro.md). A continuación se muestran algunos ejemplos de cuándo podría utilizar las configuraciones del ciclo de vida de S3 de esta forma:
+ Si sabe que se obtiene acceso a determinados objetos con poca frecuencia, puede pasarlos a la clase de almacenamiento S3 Standard-IA.
+ Se recomienda archivar los objetos a los que no necesita obtener acceso en tiempo real en las clases de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.

**nota**  
Los objetos cifrados siguen estando cifrados durante todo el proceso de transición de la clase de almacenamiento.

## Transiciones admitidas
<a name="lifecycle-general-considerations-transition-sc"></a>

En una configuración del ciclo de vida de S3, puede definir reglas para pasar objetos de una clase de almacenamiento a otra para ahorrar costos de almacenamiento. Cuando desconoce los patrones de acceso de los objetos o si los patrones de acceso cambian con el tiempo, es posible realizar la transición de los objetos a la clase de almacenamiento S3 Intelligent-Tiering para un ahorro automático de los costos. Para obtener más información acerca de las clases de almacenamiento, consulte [Descripción y administración de clases de almacenamiento de Amazon S3](storage-class-intro.md). 

Amazon S3 admite un modelo en cascada para las transiciones entre clases de almacenamiento, tal y como se muestra en el siguiente diagrama. 

![\[Gráfico en cascada de la clase de almacenamiento de Amazon S3.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/lifecycle-transitions-v4.png)


### Transiciones del ciclo de vida admitidas
<a name="supported-lifecycle-transitions"></a>

Amazon S3 admite las siguientes transiciones de ciclo de vida entre clases de almacenamiento con una configuración de S3 Lifecycle. 
+ La clase de almacenamiento S3 Standard a las clases de almacenamiento S3 Standard-IA, S3 Intelligent-Tiering, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
+ La clase de almacenamiento S3 Standard-IA a las clases de almacenamiento S3 Intelligent-Tiering, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
+ La clase de almacenamiento S3 Intelligent-Tiering puede pasar a diferentes clases de almacenamiento en función del nivel de acceso S3 Intelligent-Tiering. Las siguientes transiciones son posibles para cada nivel de acceso.
  + Nivel de acceso frecuente o nivel de acceso poco frecuente a las clases de almacenamiento S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
  + Nivel de acceso instantáneo de archivo a las clases de almacenamiento S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
  + Nivel de acceso de archivo a las clases de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
  + Nivel de acceso profundo a archivo a las clases de almacenamiento S3 Glacier Deep Archive.
+ Cualquier clase de almacenamiento S3 One Zone-IA a las clases de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
+ La clase de almacenamiento S3 Glacier Instant Retrieval a las clases de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.
+ La clase de almacenamiento S3 Glacier Flexible Retrieval a la clase de almacenamiento S3 Glacier Deep Archive.

**nota**  
Para los buckets con control de versiones habilitado o suspendido, no puede transferir objetos con un estado de replicación `Pending`.

## Restricciones y consideraciones para las transiciones
<a name="lifecycle-configuration-constraints"></a>

Las transiciones de clases de almacenamiento de ciclo de vida tienen las siguientes limitaciones:

**Los objetos de menos de 128 KB no pasarán de forma predeterminada a ninguna clase de almacenamiento**  
Amazon S3 aplica un comportamiento predeterminado a las configuraciones de S3 Lifecycle que impide que los objetos de menos de 128 KB pasen a cualquier clase de almacenamiento. No recomendamos realizar la transición de objetos de menos de 128 KB porque se le cobrará una solicitud de transición por cada objeto. Esto significa que, en el caso de los objetos más pequeños, los costos de transición pueden superar los ahorros de almacenamiento. Para obtener más información sobre los costos de las solicitudes de transición, consulte **Solicitudes y recuperaciones de datos** en la pestaña **Almacenamiento y solicitudes** de la página de [precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

 Para permitir la transición de objetos más pequeños, puede agregar un [filtro de tamaño de objeto](intro-lifecycle-rules.md#intro-lifecycle-rules-filter) a las reglas de transición del ciclo de vida que especifique un tamaño mínimo (`ObjectSizeGreaterThan`) o máximo (`ObjectSizeLessThan`) personalizado. Para obtener más información, consulte [Ejemplo: Permitir la transición de objetos de menos de 128 KB](lifecycle-configuration-examples.md#lc-small-objects). 

**nota**  
En septiembre de 2024, Amazon S3 actualizó el comportamiento de transición predeterminado para objetos pequeños, de la siguiente manera:  
**Comportamiento de transición predeterminado actualizado**: a partir de septiembre de 2024, el comportamiento predeterminado impide que los objetos de menos de 128 KB pasen a cualquier clase de almacenamiento.
**Comportamiento de transición predeterminado anterior**: antes de septiembre de 2024, el comportamiento predeterminado permitía que objetos de menos de 128 KB pasaran solo a las clases de almacenamiento S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive.
Las configuraciones creadas antes de septiembre de 2024 retienen el comportamiento de transición anterior, a menos que las modifique. Es decir, si crea, edita o elimina reglas, el comportamiento de transición predeterminado de la configuración cambia al comportamiento actualizado. Si su caso de uso lo requiere, puede cambiar el comportamiento de transición predeterminado para que los objetos de menos de 128 KB pasen a S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive. Para ello, use el encabezado `x-amz-transition-default-minimum-object-size` opcional en una solicitud de [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html).

**Los objetos se deben almacenar durante al menos 30 días antes de pasar a S3 Standard-IA o S3 One Zone-IA**  
Antes de pasar objetos a S3 Standard-IA o S3 One Zone-IA, debe almacenarlos durante al menos 30 días en Amazon S3. Por ejemplo, no puede crear una regla de ciclo de vida para pasar objetos a la clase de almacenamiento S3 Standard-IA un día después de su creación. Amazon S3 no admite esta transición durante los primeros 30 días porque se suele obtener acceso a los objetos más nuevos con mayor frecuencia o estos se eliminan antes de lo que corresponde para las clases de almacenamiento S3 Standard-IA o S3 One Zone-IA.

Asimismo, si pasa objetos no actuales (en los buckets con control de versiones), solo podrá pasarlos a las clases de almacenamiento S3 Standard-IA o S3 One Zone-IA si cumplen la condición de ser no actuales durante, al menos, 30 días. Para obtener una lista de la duración mínima de almacenamiento de todas las clases de almacenamiento, consulte [Comparación de las clases de almacenamiento de Amazon S3](storage-class-intro.md#sc-compare).

**Se le cobrará por la transición de los objetos antes de su duración mínima de almacenamiento**  
Determinadas clases de almacenamiento tienen una duración mínima de almacenamiento de objetos. Si realiza la transición de objetos fuera de estas clases de almacenamiento antes de la duración mínima, se le cobrará el resto de esa duración. Para obtener más información sobre qué clases de almacenamiento tienen una duración mínima de almacenamiento, consulte [Comparación de las clases de almacenamiento de Amazon S3](storage-class-intro.md#sc-compare).

No puede crear una regla de ciclo de vida única que haga la transición de los objetos de una clase de almacenamiento a otra antes de que haya transcurrido el periodo de duración mínima de almacenamiento.

 Por ejemplo, S3 Glacier Instant Retrieval tiene un periodo mínimo de almacenamiento de 90 días. No puede especificar una regla de ciclo de vida que transfiera los objetos a S3 Glacier Instant Retrieval después de 4 días y, después, los transfiera a S3 Glacier Deep Archive después de 20 días. En este caso, la transición de S3 Glacier Deep Archive debe producirse después de al menos 94 días.

Puede especificar dos reglas para lograrlo, pero deberá pagar los cargos de almacenamiento de duración mínima. Para obtener más información acerca de las consideraciones sobre costes, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

Para obtener más información acerca de la creación de un S3 Lifecycle, consulte [Establecimiento de una configuración de S3 Lifecycle en un bucket](how-to-set-lifecycle-configuration-intro.md).

## Transición a las clases de almacenamiento S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive (archivo de objetos)
<a name="before-deciding-to-archive-objects"></a>

Con una configuración de S3 Lifecycle, puede realizar una transición de objetos a las clases de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive para archivarlos.

Antes de archivar objetos, lea las siguientes secciones, donde encontrará consideraciones pertinentes.

### Consideraciones generales
<a name="transition-glacier-general-considerations"></a>

A continuación, se proporcionan consideraciones generales para que tenga en cuenta antes de archivar objetos:
+ Los objetos cifrados siguen estando cifrados durante todo el proceso de transición de la clase de almacenamiento.
+ Los objetos que se almacenan en las clases S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive no están disponibles en tiempo real.

  Los objetos archivados son objetos de Amazon S3, pero antes de poder obtener acceso a un objeto archivado, debe primero restaurar una copia temporal de este. La copia del objeto restaurado solo está disponible durante el tiempo que especifique en la solicitud de restauración. Después de ese periodo, Amazon S3 elimina la copia temporal y el objeto permanece archivado en S3 Glacier Flexible Retrieval. 

  Puede restaurar un objeto usando la consola de Amazon S3 o mediante programación con las bibliotecas de encapsulamiento de AWS SDK o la API REST de Amazon S3 en su código. Para obtener más información, consulte [Restauración de un objeto archivado](restoring-objects.md).
+ Los objetos almacenados en la clase de almacenamiento S3 Glacier Flexible Retrieval solo se pueden pasar a la clase de almacenamiento S3 Glacier Deep Archive.

  Puede utilizar una regla de configuración de S3 Lifecycle para convertir la clase de almacenamiento de un objeto de S3 Glacier Flexible Retrieval a S3 Glacier Deep Archive solamente. Si desea cambiar la clase de almacenamiento de un objeto almacenado en S3 Glacier Flexible Retrieval a otra clase de almacenamiento que no sea S3 Glacier Deep Archive, debe usar primero la operación de restauración para hacer una copia temporal del objeto. A continuación, utilice la operación de copia para sobrescribir el objeto especificando S3 Standard, S3 Intelligent-Tiering (Capas inteligentes de S3), S3 Standard-IA, S3 One Zone-IA o Reduced Redundancy (Redundancia reducida) como clase de almacenamiento.
+ La transición de objetos a la clase de almacenamiento S3 Glacier Deep Archive es unidireccional.

  No puede usar una regla de configuración de S3 Lifecycle para convertir la clase de almacenamiento de un objeto de S3 Glacier Deep Archive a cualquier otra clase de almacenamiento. Si desea cambiar la clase de almacenamiento de un objeto archivado a otra clase de almacenamiento, debe usar primero la operación de restauración para hacer una copia temporal del objeto. A continuación, utilice la operación de copia para sobrescribir el objeto especificando S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval o Reduced Redundancy (redundancia reducida) como clase de almacenamiento.
**nota**  
La operación de copia de objetos restaurados no se admite en la consola de Amazon S3 para los objetos de las clases de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive. Para este tipo de operación de copia, utilice la AWS Command Line Interface (AWS CLI), los SDK de AWS o la API de REST.

  Los objetos que se almacenan en las clases de almacenamiento S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive solo son visibles y están disponibles mediante Amazon S3. No están disponibles a través del servicio de Amazon Glacier independiente.

  Estos son objetos de Amazon S3 y solo puede obtener acceso a ellos por medio de la consola de Amazon S3 o la API de Amazon S3. No puede obtener acceso a los objetos archivados a través de la consola de Amazon Glacier independiente ni de la API de Amazon Glacier.

### Consideraciones sobre costos
<a name="glacier-pricing-considerations"></a>

Si tiene previsto archivar datos a los que accede con poca frecuencia durante un periodo de meses o años, las clases de almacenamiento S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive pueden reducir los costos de almacenamiento. Sin embargo, para asegurarse de que la clase de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive es apropiada para usted, debe considerar lo siguiente:
+ **Cargos generales de almacenamiento**: cuando realiza la transición de objetos a la clase de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive, se agrega una cantidad fija de almacenamiento a cada objeto para tener capacidad para los metadatos de manera que se pueda administrar el objeto.
  + Por cada objeto que se archiva en S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive, Amazon S3 utiliza 8 KB de almacenamiento para el nombre del objeto y otros metadatos. Amazon S3 almacena estos metadatos para que pueda obtener una lista en tiempo real de los objetos archivados por medio de la API de Amazon S3. Para obtener más información, consulte [Get Bucket (List Objects)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html). Por este almacenamiento adicional se aplican las tarifas de S3 Standard.
  +  Por cada objeto que se archiva en S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive, Amazon S3 agrega 32 KB de almacenamiento para el índice y los metadatos relacionados. Estos datos adicionales son necesarios para identificar y restaurar su objeto. Por este almacenamiento adicional se aplican las tarifas de S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.

  Si archiva objetos pequeños, tenga en cuenta estos cargos de almacenamiento. Asimismo, considere la posibilidad de agregar muchos objetos pequeños a una cantidad más pequeña de objetos grandes para reducir los costos generales.
+ **Cantidad de días prevista para tener los objetos archivados**: S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive son soluciones de archivo a largo plazo. El periodo mínimo de almacenamiento es de 90 días para la clase de almacenamiento S3 Glacier Flexible Retrieval y de 180 para S3 Glacier Deep Archive. La eliminación de datos que están archivados en Amazon Glacier no genera cargos si los objetos que elimina se archivan durante más tiempo que el periodo mínimo de almacenamiento. Si elimina o sobrescribe un objeto archivado antes de que transcurra el periodo mínimo, Amazon S3 aplica una tarifa de eliminación anticipada prorrateada. Para obtener información sobre la tarifa de eliminación anticipada, consulte la pregunta “¿Cómo se me cobrará por eliminar objetos de Amazon Glacier que tienen menos de 90 días?” en [Preguntas frecuentes sobre Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+ **Cargos de solicitud de transición a S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive**: cada objeto que pasa a la clase de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive constituye una solicitud de transición. Se aplica un costo para cada solicitud. Si tiene previsto pasar una cantidad grande de objetos, tenga en cuenta los costos de solicitud. Si va a archivar una combinación de objetos que incluye objetos pequeños, especialmente aquellos de menos de 128 KB, le recomendamos que utilice el filtro de tamaño de los objetos del ciclo de vida para filtrar los objetos pequeños de la transición y reducir los costos de las solicitudes.
+ **Cargos de restauración de datos de S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive**: S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive están diseñadas para archivar a largo plazo datos a los que se obtiene acceso con poca frecuencia. Para obtener información acerca de los cargos de restauración de datos, consulte la pregunta “¿Cuánto cuesta recuperar datos de Amazon Glacier?” en [Preguntas frecuentes sobre Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). Para obtener información acerca de cómo restaurar datos de Amazon Glacier, consulte [Restauración de un objeto archivado](restoring-objects.md). 

**nota**  
S3 Lifecycle traslada objetos a S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive de forma asíncrona. Es posible que haya un retraso entre la fecha de transición de la regla de configuración de S3 Lifecycle y la fecha de la transición física. En este caso, se le aplica la tarifa predeterminada de la clase de almacenamiento desde la que realizó la transición en función de la fecha de transición especificada en la regla.

En la página de detalles del producto Amazon S3 se proporciona información sobre precios y ejemplos de cálculos para el archivo de objetos de Amazon S3. Para obtener más información, consulte los temas siguientes:
+  “¿Cómo se calcula el costo de almacenamiento para los objetos de Amazon S3 archivados en Amazon Glacier?” en [Preguntas frecuentes sobre Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+  “¿Cómo se cobra la eliminación de objetos de Amazon Glacier que tengan menos de 90 días?” en [Preguntas frecuentes sobre Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+  “¿Cuánto cuesta recuperar datos de Amazon Glacier?” en [Preguntas frecuentes sobre Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+  [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/) para conocer los costes de almacenamiento de las diferentes clases de almacenamiento. 

### Restaurar objetos archivados
<a name="restore-glacier-objects-concepts"></a>

No se puede obtener acceso a los objetos archivados en tiempo real. Debe primero iniciar una solicitud de restauración y luego esperar hasta que haya una copia temporal del objeto disponible durante el periodo que especifique en la solicitud. Después de recibir una copia temporal del objeto restaurado, la clase de almacenamiento del objeto sigue siendo S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive. (Una solicitud de operación de la API de [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html) o [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) devolverá S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive como clase de almacenamiento). 

**nota**  
Cuando restaura un archivo, paga el archivo (la tarifa de S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive) y una copia que restauró de manera temporal (tarifa de almacenamiento de S3 Standard). Para obtener información acerca de los precios, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/). 

Puede restaurar una copia del objeto mediante la consola de Amazon S3 o programación. Amazon S3 solo procesa una solicitud de restauración a la vez por cada objeto. Para obtener más información, consulte [Restauración de un objeto archivado](restoring-objects.md).

# Vencimiento de objetos
<a name="lifecycle-expire-general-considerations"></a>

Puede agregar acciones de transición a una configuración de S3 Lifecycle para indicar a Amazon S3 que elimine objetos al final de su ciclo de vida. Cuando un objeto llega al final de su vida útil según su configuración de ciclo de vida, Amazon S3 realizará una acción `Expiration` según el estado de [Control de versiones de S3](Versioning.md) en el que se encuentre el bucket:
+ **Bucket no versionado**: Amazon S3 coloca el objeto en cola para eliminarlo y lo hace de manera asincrónica, por lo que se elimina de forma permanente. 
+ **Bucket con el control de versiones activado**: si la versión actual del objeto no es un marcador de eliminación, Amazon S3 añade un marcador de eliminación con un ID de versión exclusivo. Esto convierte la versión actual en no actual, y el marcador de eliminación en la versión actual. 
+ **Bucket con el control de versiones suspendido**: Amazon S3 crea un marcador de eliminación con un ID de versión nulo. Este marcador de eliminación sustituye cualquier versión del objeto con un ID de versión nulo en la jerarquía de versiones, lo que elimina el objeto de manera eficaz. 

Para un bucket con control de versiones (un bucket con el control de versiones habilitado o suspendido), hay varios aspectos que se deben tener en cuenta en relación con cómo administra Amazon S3 la acción `Expiration`. En el caso de los buckets con el control de versiones activado o suspendido, se aplica lo siguiente:
+ La caducidad del objeto solo se aplica a la versión actual del objeto (no tiene ningún impacto sobre las versiones del objeto no actuales).
+ Amazon S3 no realiza ninguna acción si hay una o varias versiones del objeto y el marcador de eliminación es la versión actual.
+ Si la versión actual del objeto es la única versión del objeto y, además, es un marcador de eliminación (también denominado *marcador de eliminación de objeto vencido*, en el que todas las versiones del objeto se han eliminado y solo queda un marcador de eliminación), Amazon S3 elimina el marcador de eliminación del objeto vencido. También puede usar la acción `Expiration` para ordenar a Amazon S3 que elimine los marcadores de eliminación de objeto vencidos. Por ejemplo, consulte [Eliminación de marcadores de eliminación de objetos vencidos en un bucket con control de versiones habilitado](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7).
+ Puede usar el elemento de acción `NoncurrentVersionExpiration` para indicar a Amazon S3 que elimine de forma permanente versiones no actuales de objetos. Estos objetos eliminados no se pueden recuperar. Puede basar este vencimiento en un número determinado de días desde que los objetos se vuelvan no actuales. Además del número de días, también puede indicar un número máximo de versiones no actuales que deben retenerse (entre 1 y 100). Este valor especifica cuántas versiones no actuales más recientes deben existir para que Amazon S3 pueda realizar la acción asociada en una versión determinada. Para especificar la cantidad máxima de versiones no actuales, es necesario proporcionar un elemento `Filter`. Si no especifica un elemento `Filter`, Amazon S3 genera un error `InvalidRequest` cuando proporcione una cantidad máxima de versiones no actuales. Para obtener información sobre cómo usar la acción `NoncurrentVersionExpiration`, consulte [Elementos para describir las acciones del ciclo de vida](intro-lifecycle-rules.md#intro-lifecycle-rules-actions).
+ Amazon S3 no realiza ninguna acción en las versiones no actuales de los objetos que tienen aplicada la configuración del bloqueo de objetos de S3.
+ Para los objetos con un estado de replicación `Pending`, Amazon S3 no realiza ninguna acción en las versiones actuales o no actuales de los objetos.

Para obtener más información, consulte [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md).

**importante**  
Cuando tiene varias reglas en una configuración de S3 Lifecycle, un objeto puede reunir los requisitos para varias acciones de S3 Lifecycle realizadas el mismo día. En tales casos, Amazon S3 sigue estas reglas generales:  
La eliminación permanente prevalece sobre la transición.
La transición prevalece sobre la creación de [marcadores de eliminación](DeleteMarker.md).
Cuando un objeto es apto para una transición S3 Glacier Flexible Retrieval y una transición S3 Standard-IA (o una transición S3 One Zone-IA), Amazon S3 elige la transición S3 Glacier Flexible Retrieval.
 Para ver ejemplos, consulte [Ejemplos de superposición de filtros y conflictos entre acciones del ciclo de vida](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

**Objetos existentes y nuevos**  
Cuando añade una configuración de ciclo de vida a un bucket, las reglas de configuración se aplican a los objetos existentes y a los objetos que añade posteriormente. Por ejemplo, si hoy agrega una regla de configuración de Lifecycle con una acción de vencimiento que causa que objetos con un prefijo específico expiren 30 días después de la creación, Amazon S3 pondrá en cola de eliminación cualquier objeto existente con más de 30 días de antigüedad y que tenga el prefijo especificado.

**importante**  
No puede usar una política de bucket para evitar eliminaciones ni transiciones mediante una regla de S3 Lifecycle. Por ejemplo, aunque la política de bucket deniegue todas las acciones a todas las entidades principales, la configuración de S3 Lifecycle seguirá funcionando con normalidad.

## Cómo saber cuándo caducarán los objetos
<a name="lifecycle-expire-when"></a>

Para conocer cuándo está previsto el vencimiento de la versión actual de un objeto, utilice las operaciones de la API [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html) o [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html). Estas operaciones de la API devuelven encabezados de respuesta que facilitan la fecha y la hora en que la versión actual del objeto ya no se puede almacenar en la memoria caché. 

**nota**  
Es posible que la fecha de vencimiento y la fecha en que Amazon S3 elimina un objeto estén desfasadas. No se le cobrará por el tiempo de almacenamiento asociado con un objeto que ha vencido. 
Antes de actualizar, desactivar o eliminar las reglas del ciclo de vida, utilice las operaciones de la API de `LIST` (como [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html) y [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)) o [Catálogo y análisis de sus datos con Inventario de S3](storage-inventory.md) para comprobar que Amazon S3 haya realizado la transición y haya caducado los objetos elegibles en función de sus casos de uso.

## Cargo por duración mínima del almacenamiento
<a name="lifecycle-expire-minimum-storage"></a>

Si crea una regla de vencimiento de S3 Lifecycle para provocar el vencimiento de objetos que han estado en la clase de almacenamiento S3 Standard-IA o S3 One Zone-IA durante menos de 30 días, se le cobrarán 30 días. Si crea una regla de vencimiento del ciclo de vida para provocar el vencimiento de objetos que han estado en el almacenamiento S3 Glacier Flexible Retrieval durante menos de 90 días, se le cobrarán 90 días. Si crea una regla de vencimiento de Lifecycle para provocar el vencimiento de los objetos que han estado en el almacenamiento S3 Glacier Deep Archive durante menos de 180 días, se le cobrarán 180 días.

Para obtener más información, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

# Establecimiento de una configuración de S3 Lifecycle en un bucket
<a name="how-to-set-lifecycle-configuration-intro"></a>

Puede establecer una configuración de Amazon S3 Lifecycle en un bucket mediante la consola de Amazon S3, la AWS Command Line Interface (AWS CLI), los AWS SDK o la API de REST de Amazon S3. Para obtener información acerca de la configuración de S3 Lifecycle, consulte [Administración del ciclo de vida de los objetos](object-lifecycle-mgmt.md).

**nota**  
Para ver o editar la configuración del ciclo de vida de un bucket de directorio, utilice la AWS CLI, los SDK de AWS o la API de REST de Amazon S3. Para obtener más información, consulte [Uso de S3 Lifecycle para buckets de directorio](directory-buckets-objects-lifecycle.md).

En su configuración de S3 Lifecycle, utiliza *reglas de ciclo de vida* para definir las acciones que desea que Amazon S3 realice durante la vida útil de un objeto. Por ejemplo, puede definir reglas para realizar la transición de objetos a otra clase de almacenamiento, archivarlos o hacer que venzan (eliminarlos) después de un periodo de tiempo especificado.

## Consideraciones sobre S3 Lifecycle
<a name="lifecycle-considerations"></a>

Antes de establecer una configuración del ciclo de vida, tenga en cuenta lo siguiente:

**Retraso de propagación de configuración del ciclo de vida**  
Cuando añade una configuración de S3 Lifecycle a un bucket, por lo general se produce un cierto desfase antes de que una configuración de ciclo de vida nueva o actualizada se propague totalmente a todos los sistemas de Amazon S3. Habrá un retraso de algunos minutos antes de que la configuración entre en vigor completamente. Este retraso también se puede producir cuando elimina una configuración de S3 Lifecycle.

**Retraso de caducidad o transición**  
Hay un retraso entre el momento en que se cumple la regla del ciclo de vida y el momento en que se completa su aplicación. Por ejemplo, supongamos que un conjunto de objetos caduca de acuerdo con una regla del ciclo de vida el 1 de enero. Aunque la regla de caducidad se haya cumplido el 1 de enero, es posible que Amazon S3 no elimine estos objetos hasta días o incluso semanas después. Este retraso se debe a que S3 Lifecycle pone los objetos en cola para transiciones o caducidades de forma asíncrona. Sin embargo, los cambios en la facturación suelen aplicarse en cuanto se cumple la regla de ciclo de vida, incluso aunque la acción no se haya completado. Para obtener más información, consulte [Cambios en la facturación](#lifecycle-billing). Para supervisar el efecto de las actualizaciones realizadas por las reglas del ciclo de vida activo, consulte [¿Cómo puedo supervisar las acciones que se llevan a cabo según mis reglas de ciclo de vida?](troubleshoot-lifecycle.md#troubleshoot-lifecycle-2).

**Actualización, desactivación o eliminación de las reglas del ciclo de vida**  
Cuando se deshabilitan o eliminan reglas del ciclo de vida después de cierto retraso, Amazon S3 deja de programar la eliminación o transición de nuevos objetos. Cualquier objeto que ya haya sido programado se desprograma y no se elimina ni se traslada.

**nota**  
Antes de actualizar, desactivar o eliminar las reglas del ciclo de vida, utilice las operaciones de la API de `LIST` (como [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html) y [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)) o [Catálogo y análisis de sus datos con Inventario de S3](storage-inventory.md) para comprobar que Amazon S3 haya realizado la transición y haya caducado los objetos elegibles en función de sus casos de uso. Si tiene problemas para actualizar, deshabilitar o eliminar las reglas del ciclo de vida, consulte [Solución de problemas de Amazon S3 Lifecycle](troubleshoot-lifecycle.md).

**Objetos existentes y nuevos**  
Cuando añade una configuración de ciclo de vida a un bucket, las reglas de configuración se aplican a los objetos existentes y a los objetos que añade posteriormente. Por ejemplo, si hoy agrega una regla de configuración de Lifecycle con una acción de vencimiento que causa que objetos con un prefijo específico expiren 30 días después de la creación, Amazon S3 pondrá en cola de eliminación cualquier objeto existente con más de 30 días de antigüedad y que tenga el prefijo especificado.

**Supervisión del efecto de las reglas del ciclo de vida**  
Para supervisar el efecto de las actualizaciones realizadas por las reglas del ciclo de vida activo, consulte [¿Cómo puedo supervisar las acciones que se llevan a cabo según mis reglas de ciclo de vida?](troubleshoot-lifecycle.md#troubleshoot-lifecycle-2).

**Cambios en la facturación**  
Puede que haya un desfase entre la fecha en que se cumplen las reglas de configuración de ciclo de vida y la fecha en que se realiza la acción para cumplir la regla. Sin embargo, los cambios en la facturación se producen en cuanto se cumple la regla de configuración de ciclo de vida, incluso aunque la acción todavía no se haya realizado.

Un ejemplo es cuando no se le cobra por el almacenamiento después del tiempo de vencimiento del objeto, incluso aunque el objeto no se elimine inmediatamente. De igual modo, se le cobran las tarifas de almacenamiento de S3 Glacier Flexible Retrieval en cuanto transcurre el tiempo de transición del objeto, incluso aunque el objeto no se traslade de inmediato a la clase de almacenamiento S3 Glacier Flexible Retrieval. 

Sin embargo, las transiciones del ciclo de vida a la clase de almacenamiento de S3 Intelligent-Tiering son la excepción. Los cambios en la facturación no se producen hasta después de que el objeto haya pasado a la clase de almacenamiento de S3 Intelligent-Tiering. 

**Varias reglas o reglas incompatibles**  
Cuando tiene varias reglas en una configuración de S3 Lifecycle, un objeto puede reunir los requisitos para varias acciones de S3 Lifecycle realizadas el mismo día. En tales casos, Amazon S3 sigue estas reglas generales:
+ La eliminación permanente prevalece sobre la transición.
+ La transición prevalece sobre la creación de [marcadores de eliminación](DeleteMarker.md).
+ Cuando un objeto es apto para una transición S3 Glacier Flexible Retrieval y una transición S3 Standard-IA (o una transición S3 One Zone-IA), Amazon S3 elige la transición S3 Glacier Flexible Retrieval.

 Para ver ejemplos, consulte [Ejemplos de superposición de filtros y conflictos entre acciones del ciclo de vida](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Establecimiento de una configuración de S3 Lifecycle
<a name="how-to-set-lifecycle-configuration"></a>

Puede establecer una configuración de Amazon S3 Lifecycle en un bucket de uso general mediante la consola de Amazon S3, la AWS Command Line Interface (AWS CLI), los SDK de AWS o la API de REST de Amazon S3. 

Para obtener información sobre el uso de plantillas de AWS CloudFormation y algunos ejemplos, consulte [Trabajo con plantillas de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) y [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#aws-resource-s3-bucket--examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html#aws-resource-s3-bucket--examples) en la *Guía del usuario de CloudFormation*.

### Uso de la consola de S3
<a name="create-lifecycle"></a>

Puede definir una regla de Lifecycle para todos los objetos o para un subconjunto de objetos del bucket mediante un prefijo compartido (nombres de objetos que comienzan por una cadena común) o una etiqueta. En la regla de Lifecycle, puede definir acciones específicas para las versiones de objetos actualizadas y no actualizadas. Para obtener más información, consulte los siguientes temas:
+ [Administración del ciclo de vida de los objetos](object-lifecycle-mgmt.md)
+ [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md)

**Para crear una regla de ciclo de vida**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, seleccione el nombre del bucket para el que desea crear una regla de ciclo de vida.

1. Seleccione la pestaña **Management (Administración)** y seleccione **Create lifecycle rule (Crear regla de ciclo de vida)**.

1. En **Lifecycle rule name (Nombre de regla de ciclo de vida)**, escriba un nombre para la regla. 

   El nombre debe ser único dentro del bucket. 

1. Elija el ámbito de la regla de ciclo de vida: 
   + Para aplicar esta regla de ciclo de vida a *todos los objetos con un prefijo o etiqueta específicos*, elija **Limit the scope to specific prefixes or tags (Limitar el ámbito a prefijos o etiquetas específicos)**. 
     + Para limitar el ámbito por prefijo, en **Prefix (Prefijo)**, escriba el prefijo. 
     + Para limitar el ámbito por etiqueta, seleccione **Add tag (Agregar etiqueta)** e introduzca la clave y el valor de la etiqueta.

     Para obtener más información acerca de los prefijos de nombre de objeto, consulte [Denominación de objetos de Amazon S3](object-keys.md). Para obtener más información acerca de las etiquetas de objeto, consulte [Categorización de los objetos mediante etiquetas](object-tagging.md). 
   + Para aplicar esta regla del ciclo de vida a *todos los objetos del bucket*, seleccione **Esta regla se aplica a *todos* los objetos del bucket** y, a continuación, elija **Reconozco que esta regla se aplica a todos los objetos del bucket**.

1. Para filtrar una regla por tamaño de objeto, puede seleccionar **Especificar el tamaño mínimo de objeto**, **Especificar tamaño máximo de objeto** o ambas opciones.
   + Cuando especifica un valor en **Tamaño mínimo de objeto** o **Tamaño máximo de objeto**, este debe ser superior a 0 bytes y hasta 50 TB. Puede indicar este valor en bytes, KB, MB o GB.
   + Cuando especifica ambos valores, el tamaño máximo de objeto debe ser superior al tamaño mínimo de objeto.
**nota**  
Los filtros **Tamaño mínimo de objeto** y **Tamaño máximo de objeto** excluyen los valores especificados. Por ejemplo, si configura un filtro para que caduquen los objetos con un **tamaño mínimo de objeto** de 128 KB, los objetos que tengan exactamente 128 KB no caducarán. En cambio, la regla solo se aplica a los objetos que tengan un tamaño superior a 128 KB.

1. En **Lifecycle rule actions** (Acciones de regla de ciclo de vida), elija las acciones que desea que realice la regla de ciclo de vida:
   + Realizar la transición de versiones de objetos *actuales* entre clases de almacenamiento
   + Realizar la transición de versiones de objetos *anteriores* entre clases de almacenamiento
   + Caducar las versiones de objetos *actuales*
**nota**  
En el caso de los buckets que no tengan habilitado el [control de versiones de S3](Versioning.md), la caducidad de las versiones actuales hace que Amazon S3 elimine los objetos de forma permanente. Para obtener más información, consulte [Acciones de ciclo de vida y estado de control de versiones del bucket](intro-lifecycle-rules.md#lifecycle-actions-bucket-versioning-state).
   + Eliminar permanentemente versiones de objetos *anteriores*
   + Eliminar marcadores de eliminación caducados o cargas multiparte incompletas 

   Dependiendo de las acciones que elija, aparecerán diferentes opciones.

1. Para realizar la transición de versiones de objetos *actuales* entre clases de almacenamiento, realice lo siguiente en **Realizar transición de versiones actuales de objetos entre clases de almacenamiento**:

   1. En **Transiciones de clase de almacenamiento**, seleccione la clase de almacenamiento a la que quiera realizar la transición. Para ver una lista de posibles transiciones, consulte [Transiciones del ciclo de vida admitidas](lifecycle-transition-general-considerations.md#supported-lifecycle-transitions). Puede elegir entre las siguientes clases de almacenamiento:
      + S3 Standard-IA
      + S3 Intelligent-Tiering
      + S3 One Zone-IA
      + S3 Glacier Instant Retrieval
      + S3 Glacier Flexible Retrieval
      + S3 Glacier Deep Archive

   1. En **Days after object creation (Días después de la creación del objeto)**, introduzca el número de días posteriores a la creación del objeto en los que quiera realizar la transición.

   Para obtener más información acerca de las clases de almacenamiento, consulte [Descripción y administración de clases de almacenamiento de Amazon S3](storage-class-intro.md). Puede definir transiciones para versiones de objetos actuales o anteriores, o tanto para las actuales como para las anteriores. El control de versiones le permite mantener varias versiones de un objeto en un bucket. Para obtener más información sobre el control de versiones, consulte [Uso de la consola de S3](manage-versioning-examples.md#enable-versioning).
**importante**  
Si elige la clase de almacenamiento S3 Glacier Flexible Retrieval, S3 Glacier Flexible Retrival o Glacier Deep Archive, los objetos permanecen en Amazon S3. No puede acceder a ellos directamente a través del servicio independiente de Amazon Glacier. Para obtener más información, consulte [Transición de objetos con Amazon S3 Lifecycle](lifecycle-transition-general-considerations.md). 

1. Para realizar la transición de versiones de objetos *no actuales* entre clases de almacenamiento, realice lo siguiente en **Realizar transición de versiones no actuales de objetos entre clases de almacenamiento**:

   1. En **Transiciones de clase de almacenamiento**, seleccione la clase de almacenamiento a la que quiera realizar la transición. Para ver una lista de posibles transiciones, consulte [Transiciones del ciclo de vida admitidas](lifecycle-transition-general-considerations.md#supported-lifecycle-transitions). Puede elegir entre las siguientes clases de almacenamiento:
      + S3 Standard-IA
      + S3 Intelligent-Tiering
      + S3 One Zone-IA
      + S3 Glacier Instant Retrieval
      + S3 Glacier Flexible Retrieval
      + S3 Glacier Deep Archive

   1. En **Days after object becomes non-current (Días después de que el objeto se vuelve no actual)**, introduzca el número de días posteriores a la creación del objeto en los que quiera realizar la transición.

1. Para hacer caducar versiones de objetos *actuales*, en **Expire current versions of objects** (Hacer caducar versiones de objetos actuales), en **Number of days after object creation** (Número de días después de la creación del objeto), ingrese el número de días.
**importante**  
En un bucket sin control de versiones, la acción de vencimiento da como resultado que Amazon S3 elimine de forma permanente el objeto. Para obtener más información sobre las acciones del ciclo de vida, consulte [Elementos para describir las acciones del ciclo de vida](intro-lifecycle-rules.md#intro-lifecycle-rules-actions).

1. Para eliminar de manera permanente versiones anteriores de objetos, en **Permanently delete noncurrent versions of objects** (Eliminar de manera permanente versiones no actuales de objetos), en **Days after objects become noncurrent** (Días después de que los objetos se vuelven no actuales), escriba el número de días. Puede especificar opcionalmente el número de versiones más recientes que desea retener introduciendo un valor en **Number of newer versions to retain** (Número de versiones más recientes que se deben retener).

1. Bajo **Delete expired markers or incomplete multipart uploads (Eliminar marcadores caducados o cargas multiparte incompletas)**, seleccione **Delete expired object delete markers** (Eliminar marcadores de eliminación de objetos caducados) y **Delete incomplete multipart uploads** (Eliminar cargas multiparte incompletas). A continuación, escriba el número de días que han de transcurrir entre el inicio de la carga multiparte y el momento en que quiera finalizarla y limpiar las cargas incompletas.

   Para obtener más información acerca de las cargas multipartes, consulte [Carga y copia de objetos con la carga multiparte en Amazon S3](mpuoverview.md).

1. Elija **Create rule (Crear regla)**.

   Si la regla no contiene ningún error, Amazon S3 la habilita y se puede ver en la ficha **Management (Administración)** en **Lifecycle rules (Reglas del ciclo de vida)**.

### Mediante AWS CLI
<a name="set-lifecycle-cli"></a>

Puede utilizar los siguientes comandos de la AWS CLI para administrar configuraciones de ciclo de vida de S3:
+ `put-bucket-lifecycle-configuration`
+ `get-bucket-lifecycle-configuration`
+ `delete-bucket-lifecycle`

Para obtener instrucciones sobre la configuración de la AWS CLI, consulte [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) en la *Amazon S3 API Reference*.

La configuración de Amazon S3 Lifecycle es un archivo XML. Pero cuando se usa la AWS CLI no se puede especificar el formato XML. Debe especificar el formato JSON en su lugar. A continuación, se indican ejemplos de configuraciones de Lifecycle de XML y las configuraciones de JSON equivalentes que puede especificar en un comando de AWS CLI.

Considere la siguiente configuración de S3 Lifecycle de ejemplo:

**Example Ejemplo 1**  

**Example**  

```
<LifecycleConfiguration>
    <Rule>
        <ID>ExampleRule</ID>
        <Filter>
           <Prefix>documents/</Prefix>
        </Filter>
        <Status>Enabled</Status>
        <Transition>        
           <Days>365</Days>        
           <StorageClass>GLACIER</StorageClass>
        </Transition>    
        <Expiration>
             <Days>3650</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>
```

```
{
    "Rules": [
        {
            "Filter": {
                "Prefix": "documents/"
            },
            "Status": "Enabled",
            "Transitions": [
                {
                    "Days": 365,
                    "StorageClass": "GLACIER"
                }
            ],
            "Expiration": {
                "Days": 3650
            },
            "ID": "ExampleRule"
        }
    ]
}
```

**Example Ejemplo 2**  

**Example**  

```
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Rule>
        <ID>id-1</ID>
        <Expiration>
            <Days>1</Days>
        </Expiration>
        <Filter>
            <And>
                <Prefix>myprefix</Prefix>
                <Tag>
                    <Key>mytagkey1</Key>
                    <Value>mytagvalue1</Value>
                </Tag>
                <Tag>
                    <Key>mytagkey2</Key>
                    <Value>mytagvalue2</Value>
                </Tag>
            </And>
        </Filter>
        <Status>Enabled</Status>    
    </Rule>
</LifecycleConfiguration>
```

```
{
    "Rules": [
        {
            "ID": "id-1",
            "Filter": {
                "And": {
                    "Prefix": "myprefix", 
                    "Tags": [
                        {
                            "Value": "mytagvalue1", 
                            "Key": "mytagkey1"
                        }, 
                        {
                            "Value": "mytagvalue2", 
                            "Key": "mytagkey2"
                        }
                    ]
                }
            }, 
            "Status": "Enabled", 
            "Expiration": {
                "Days": 1
            }
        }
    ]
}
```

Puede probar la `put-bucket-lifecycle-configuration` de la siguiente manera.

**Para probar la configuración**

1. Guarde la configuración de Lifecycle de JSON en un archivo (por ejemplo, *`lifecycle.json`*). 

1. Ejecute el siguiente comando de la AWS CLI para establecer la configuración del ciclo de vida en su bucket. Sustituya `user input placeholders` por su propia información.

   ```
   $ aws s3api put-bucket-lifecycle-configuration  \
   --bucket amzn-s3-demo-bucket  \
   --lifecycle-configuration file://lifecycle.json
   ```

1. Para verificar, recupere la configuración de S3 Lifecycle con el comando `get-bucket-lifecycle-configuration` de la AWS CLI de la siguiente manera:

   ```
   $ aws s3api get-bucket-lifecycle-configuration  \
   --bucket amzn-s3-demo-bucket
   ```

1. Para eliminar la configuración de S3 Lifecycle, utilice el comando `delete-bucket-lifecycle` de la AWS CLI de la siguiente manera.

   ```
   aws s3api delete-bucket-lifecycle \
   --bucket amzn-s3-demo-bucket
   ```

### Uso de los AWS SDK
<a name="manage-lifecycle-using-sdk"></a>

------
#### [ Java ]

Puede utilizar AWS SDK para Java para administrar la configuración del ciclo de vida de S3 de un bucket. Para obtener más información acerca de cómo administrar la configuración de S3 Lifecycle, consulte [Administración del ciclo de vida de los objetos](object-lifecycle-mgmt.md).

**nota**  
Cuando agrega una configuración de S3 Lifecycle a un bucket, Amazon S3 reemplaza la configuración de Lifecycle actual del bucket, si la hubiera. Para actualizar una configuración, debe recuperarla, hacer los cambios deseados y luego añadir la configuración revisada al bucket.

Para administrar la configuración de ciclo de vida con el AWS SDK, puede hacer lo siguiente:
+ Agregue una configuración de ciclo de vida a un bucket.
+ Recupere la configuración de ciclo de vida y actualícela agregando otra regla.
+ Agregue la configuración de ciclo de vida modificada al bucket. Amazon S3 reemplaza la configuración existente.
+ Recupere la configuración de nuevo y verifique que tiene el número correcto de reglas imprimiendo el número de reglas.
+ Elimine la configuración de ciclo de vida y verifique que se ha eliminado intentando recuperarla de nuevo.

Para ver ejemplos de cómo establecer la configuración del ciclo de vida en un bucket con el AWS SDK para Java, consulte [Set lifecycle configuration on a bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutBucketLifecycleConfiguration_section.html) en la *Referencia de la API de Amazon S3*.

------
#### [ .NET ]

Puede utilizar AWS SDK para .NET para administrar la configuración del ciclo de vida de S3 en un bucket. Para obtener más información acerca de cómo administrar la configuración del ciclo de vida, consulte [Administración del ciclo de vida de los objetos](object-lifecycle-mgmt.md). 

**nota**  
Cuando añade una configuración de ciclo de vida, Amazon S3 reemplaza la configuración existente en el bucket especificado. Para actualizar una configuración, primero debe recuperar la configuración de ciclo de vida existente, hacer los cambios y luego añadir la configuración de ciclo de vida revisada al bucket.

El siguiente ejemplo muestra cómo usar AWS SDK para .NET para añadir, actualizar y eliminar una configuración de ciclo de vida de un bucket. Este ejemplo de código hace lo siguiente:
+ Añade una configuración de ciclo de vida a un bucket. 
+ Recupera la configuración de ciclo de vida y la actualiza añadiendo otra regla. 
+ Añade la configuración de Lifecycle modificada al bucket. Amazon S3 reemplaza la configuración de ciclo de vida existente.
+ Recupera la configuración de nuevo y la verifica imprimiendo el número de reglas en la configuración.
+ Elimina la configuración del ciclo de vida y verifica la eliminación.

Para obtener información acerca de cómo configurar y ejecutar ejemplos de código, consulte [Getting Started with the AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config.html) en la *AWS SDK para .NET Developer Guide*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class LifecycleTest
    {
        private const string bucketName = "*** bucket name ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;
        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            AddUpdateDeleteLifecycleConfigAsync().Wait();
        }

        private static async Task AddUpdateDeleteLifecycleConfigAsync()
        {
            try
            {
                var lifeCycleConfiguration = new LifecycleConfiguration()
                {
                    Rules = new List<LifecycleRule>
                        {
                            new LifecycleRule
                            {
                                 Id = "Archive immediately rule",
                                 Filter = new LifecycleFilter()
                                 {
                                     LifecycleFilterPredicate = new LifecyclePrefixPredicate()
                                     {
                                         Prefix = "glacierobjects/"
                                     }
                                 },
                                 Status = LifecycleRuleStatus.Enabled,
                                 Transitions = new List<LifecycleTransition>
                                 {
                                      new LifecycleTransition
                                      {
                                           Days = 0,
                                           StorageClass = S3StorageClass.Glacier
                                      }
                                  },
                            },
                            new LifecycleRule
                            {
                                 Id = "Archive and then delete rule",
                                  Filter = new LifecycleFilter()
                                 {
                                     LifecycleFilterPredicate = new LifecyclePrefixPredicate()
                                     {
                                         Prefix = "projectdocs/"
                                     }
                                 },
                                 Status = LifecycleRuleStatus.Enabled,
                                 Transitions = new List<LifecycleTransition>
                                 {
                                      new LifecycleTransition
                                      {
                                           Days = 30,
                                           StorageClass = S3StorageClass.StandardInfrequentAccess
                                      },
                                      new LifecycleTransition
                                      {
                                        Days = 365,
                                        StorageClass = S3StorageClass.Glacier
                                      }
                                 },
                                 Expiration = new LifecycleRuleExpiration()
                                 {
                                       Days = 3650
                                 }
                            }
                        }
                };

                // Add the configuration to the bucket. 
                await AddExampleLifecycleConfigAsync(client, lifeCycleConfiguration);

                // Retrieve an existing configuration. 
                lifeCycleConfiguration = await RetrieveLifecycleConfigAsync(client);

                // Add a new rule.
                lifeCycleConfiguration.Rules.Add(new LifecycleRule
                {
                    Id = "NewRule",
                    Filter = new LifecycleFilter()
                    {
                        LifecycleFilterPredicate = new LifecyclePrefixPredicate()
                        {
                            Prefix = "YearlyDocuments/"
                        }
                    },
                    Expiration = new LifecycleRuleExpiration()
                    {
                        Days = 3650
                    }
                });

                // Add the configuration to the bucket. 
                await AddExampleLifecycleConfigAsync(client, lifeCycleConfiguration);

                // Verify that there are now three rules.
                lifeCycleConfiguration = await RetrieveLifecycleConfigAsync(client);
                Console.WriteLine("Expected # of rulest=3; found:{0}", lifeCycleConfiguration.Rules.Count);

                // Delete the configuration.
                await RemoveLifecycleConfigAsync(client);

                // Retrieve a nonexistent configuration.
                lifeCycleConfiguration = await RetrieveLifecycleConfigAsync(client);

            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }

        static async Task AddExampleLifecycleConfigAsync(IAmazonS3 client, LifecycleConfiguration configuration)
        {

            PutLifecycleConfigurationRequest request = new PutLifecycleConfigurationRequest
            {
                BucketName = bucketName,
                Configuration = configuration
            };
            var response = await client.PutLifecycleConfigurationAsync(request);
        }

        static async Task<LifecycleConfiguration> RetrieveLifecycleConfigAsync(IAmazonS3 client)
        {
            GetLifecycleConfigurationRequest request = new GetLifecycleConfigurationRequest
            {
                BucketName = bucketName
            };
            var response = await client.GetLifecycleConfigurationAsync(request);
            var configuration = response.Configuration;
            return configuration;
        }

        static async Task RemoveLifecycleConfigAsync(IAmazonS3 client)
        {
            DeleteLifecycleConfigurationRequest request = new DeleteLifecycleConfigurationRequest
            {
                BucketName = bucketName
            };
            await client.DeleteLifecycleConfigurationAsync(request);
        }
    }
}
```

------
#### [ Ruby ]

Puede utilizar AWS SDK para Ruby para administrar la configuración de S3 Lifecycle en un bucket mediante la clase [https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/BucketLifecycle.html](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/BucketLifecycle.html). Para obtener más información acerca de cómo administrar la configuración de S3 Lifecycle, consulte [Administración del ciclo de vida de los objetos](object-lifecycle-mgmt.md). 

------

### Uso de la API de REST
<a name="manage-lifecycle-using-rest"></a>

En las secciones siguientes de la *Amazon Simple Storage Service API Reference* se describen las operaciones de la API de REST relacionadas con la configuración de S3 Lifecycle: 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)

## Solución de problemas del ciclo de vida
<a name="lifecycle-troubleshoot"></a>

Para ver problemas habituales que pueden producirse al trabajar con S3 Lifecycle, consulte [Solución de problemas de Amazon S3 Lifecycle](troubleshoot-lifecycle.md).

# Interacción de S3 Lifecycle con otras configuraciones de bucket
<a name="lifecycle-and-other-bucket-config"></a>

Además de las configuraciones de S3 Lifecycle, puede asociar otras configuraciones con el bucket. En esta sección se explica cómo la configuración de S3 Lifecycle se relaciona con otras configuraciones del bucket.

## S3 Lifecycle y Control de versiones de S3
<a name="lifecycle-versioning-support-intro"></a>

Puede añadir configuraciones de S3 Lifecycle a buckets sin control de versiones y buckets con control de versiones habilitado. Para obtener más información, consulte [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md). 

Un bucket habilitado para el control de versiones mantiene una versión actual del objeto y cero o más versiones no actuales del objeto. Puede definir diferentes reglas de ciclo de vida para las versiones actuales y no actuales del objeto.

Para obtener más información, consulte [Elementos de configuración del ciclo de vida](intro-lifecycle-rules.md).

**importante**  
Cuando tiene varias reglas en una configuración de S3 Lifecycle, un objeto puede reunir los requisitos para varias acciones de S3 Lifecycle realizadas el mismo día. En tales casos, Amazon S3 sigue estas reglas generales:  
La eliminación permanente prevalece sobre la transición.
La transición prevalece sobre la creación de [marcadores de eliminación](DeleteMarker.md).
Cuando un objeto es elegible para una transición S3 Glacier Flexible Retrieval y S3 Standard-IA (o S3 One Zone-IA), Amazon S3 elige la transición S3 Glacier Flexible Retrieval.
 Para ver ejemplos, consulte [Ejemplos de superposición de filtros y conflictos entre acciones del ciclo de vida](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Configuración de S3 Lifecycle en buckets habilitados para MFA
<a name="lifecycle-general-considerations-mfa-enabled-bucket"></a>

No se admite la configuración de ciclo de vida de S3 en buckets de autenticación multifactor configurados para la eliminación de MFA. Para obtener más información, consulte [Configurar la eliminación de MFA](MultiFactorAuthenticationDelete.md).

## S3 Lifecycle y registro
<a name="lifecycle-general-considerations-logging"></a>

Las acciones de Amazon S3 Lifecycle no se capturan mediante el registro de objetos de AWS CloudTrail. CloudTrail captura las solicitudes de la API realizadas a puntos de conexión externos de Amazon S3, mientras que las acciones de S3 Lifecycle se realizan mediante puntos de conexión internos de Amazon S3. 

Puede habilitar registros de acceso a servidores de Amazon S3 en un bucket de S3 para capturar acciones relacionadas con S3 Lifecycle, como transiciones de objetos a otra clase de almacenamiento y vencimientos de objeto, lo que provoca una eliminación permanente o una eliminación lógica. Para obtener más información, consulte [Registro de solicitudes con registro de acceso al servidor](ServerLogs.md).

Si tiene el registro habilitado en su bucket, los registros de acceso del servidor de Amazon S3 notifican los resultados de las siguientes operaciones.


| Registro de operaciones | Descripción | 
| --- | --- | 
|  `S3.EXPIRE.OBJECT`  |  Amazon S3 elimina de forma permanente el objeto por la acción de `Expiration` del ciclo de vida.  | 
|  `S3.CREATE.DELETEMARKER`  |  Amazon S3 elimina de forma lógica la versión actual y añade un marcador de eliminación en un bucket que tenga el control de versiones habilitado.  | 
|  `S3.TRANSITION_SIA.OBJECT`  |  Amazon S3 pasa el objeto a la clase de almacenamiento S3 Standard-IA.  | 
|  `S3.TRANSITION_ZIA.OBJECT`  |  Amazon S3 pasa el objeto a la clase de almacenamiento S3 One Zone-IA.  | 
|  `S3.TRANSITION_INT.OBJECT`  |  Amazon S3 pasa el objeto a la clase de almacenamiento S3 Intelligent-Tiering.  | 
|  `S3.TRANSITION_GIR.OBJECT`  |  Amazon S3 inicia la transición del objeto a la clase de almacenamiento S3 Glacier Instant Retrieval.  | 
|  `S3.TRANSITION.OBJECT`  |  Amazon S3 inicia la transición del objeto a la clase de almacenamiento S3 Glacier Flexible Retrieval.  | 
|  `S3.TRANSITION_GDA.OBJECT`  |  Amazon S3 inicia la transición del objeto a la clase de almacenamiento S3 Glacier Deep Archive.  | 
|  `S3.DELETE.UPLOAD`  |  Amazon S3 anula una carga multiparte incompleta.  | 

**nota**  
Los registros de acceso del servidor de Amazon S3 se entregan en la medida de lo posible y no se pueden utilizar para completar la contabilidad de todas las solicitudes de Amazon S3. 

# Configuración de notificaciones de eventos de S3 Lifecycle
<a name="lifecycle-configure-notification"></a>

Para recibir un aviso cuando Amazon S3 elimina un objeto o lo traslada a otra clase de almacenamiento de Amazon S3 siguiendo una regla de S3 Lifecycle, puede configurar una notificación de eventos de Amazon S3.

Puede recibir notificaciones de los siguientes eventos de S3 Lifecycle:
+ **Eventos de transición**: mediante el uso del tipo de evento `s3:LifecycleTransition`, puede recibir una notificación cuando un objeto se traslade de una clase de almacenamiento de Amazon S3 a otra mediante una configuración de S3 Lifecycle.
+ **Eventos de vencimiento (eliminar)**: mediante el uso de los tipos de eventos `LifecycleExpiration`, puede recibir notificaciones cada vez que Amazon S3 elimine un objeto en función de la configuración de S3 Lifecycle. 

  Hay dos tipos de eventos de vencimiento: 
  + El tipo de evento `s3:LifecycleExpiration:Delete` le notifica cuando se elimina un objeto de un bucket sin control de versiones. `s3:LifecycleExpiration:Delete` también le notifica cuando la versión de un objeto se elimina de forma permanente mediante una configuración de S3 Lifecycle.
  +  El tipo de evento `s3:LifecycleExpiration:DeleteMarkerCreated` le notifica cuando S3 Lifecycle crea un marcador de eliminación después de que se elimine la versión actual de un objeto del bucket con control de versiones. S3 Lifecycle establece la hora de creación del marcador de eliminación en 00:00 UTC (medianoche) del día actual. Esta hora de creación puede diferir de la hora del evento en la notificación `s3:LifecycleExpiration:DeleteMarkerCreated` que envía S3. Para obtener más información, consulte [Eliminar versiones de objetos de un bucket con control de versiones habilitado](DeletingObjectVersions.md).

Amazon S3 puede publicar notificaciones de eventos en un tema de Amazon Simple Notification Service (Amazon SNS), una cola de Amazon Simple Queue Service (Amazon SQS) o una función de AWS Lambda. Para obtener más información, consulte [Notificaciones de eventos de Amazon S3](EventNotifications.md).

Para obtener instrucciones sobre cómo configurar notificaciones de eventos de Amazon S3, consulte [Uso de Amazon SQS, Amazon SNS y AWS Lambda](how-to-enable-disable-notification-intro.md).

El siguiente mensaje es un ejemplo de un mensaje que Amazon S3 envía para publicar un evento de `s3:LifecycleExpiration:Delete`. Para obtener más información, consulte [Estructura de mensaje de evento](notification-content-structure.md).

```
 1. {  
 2.    "Records":[  
 3.       {  
 4.          "eventVersion":"2.3",
 5.          "eventSource":"aws:s3",
 6.          "awsRegion":"us-west-2",
 7.          "eventTime":"1970-01-01T00:00:00.000Z",
 8.          "eventName":"LifecycleExpiration:Delete",
 9.          "userIdentity":{  
10.             "principalId":"s3.amazonaws.com"
11.          },
12.          "requestParameters":{  
13.             "sourceIPAddress":"s3.amazonaws.com"
14.          },
15.          "responseElements":{  
16.             "x-amz-request-id":"C3D13FE58DE4C810",
17.             "x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD"
18.          },
19.          "s3":{  
20.             "s3SchemaVersion":"1.0",
21.             "configurationId":"testConfigRule",
22.             "bucket":{  
23.                "name":"amzn-s3-demo-bucket",
24.                "ownerIdentity":{  
25.                   "principalId":"A3NL1KOZZKExample"
26.                },
27.                "arn":"arn:aws:s3:::amzn-s3-demo-bucket"
28.             },
29.             "object":{  
30.                "key":"expiration/delete",
31.                "sequencer":"0055AED6DCD90281E5",              
32.             }
33.          }
34.       }
35.    ]
36. }
```

Los mensajes que Amazon S3 envía para publicar un evento `s3:LifecycleTransition` también incluyen la siguiente información:

```
1. "lifecycleEventData":{
2.     "transitionEventData": {
3.         "destinationStorageClass": the destination storage class for the object
4.     }
5. }
```

# Elementos de configuración del ciclo de vida
<a name="intro-lifecycle-rules"></a>

Una configuración de S3 Lifecycle consta de reglas de ciclo de vida que incluyen varios elementos que describen las acciones que Amazon S3 lleva a cabo durante la vida útil de un objeto. Cada bucket de S3 puede tener asignada una configuración de ciclo de vida, que puede contener hasta 1000 reglas. La configuración de Amazon S3 Lifecycle se especifica mediante un XML que consta de una o varias reglas de Lifecycle y cada una de ellas consta de uno o más elementos.

```
<LifecycleConfiguration>
    <Rule>
         <Element>
    </Rule>
    <Rule>
         <Element>
         <Element>
    </Rule>
</LifecycleConfiguration>
```

Cada regla consta de los elementos siguientes:
+ Metadatos de la regla, que incluyen un ID de regla y un estado que indica si esta está activada o desactivada. Si una regla está desactivada, Amazon S3 no realiza ninguna de las acciones especificadas en ella.
+ Un filtro que identifica los objetos a los que se aplica la regla. Puede especificar un filtro utilizando un tamaño de objeto, un prefijo de clave de objeto, una o varias etiquetas de objeto o una combinación de filtros.
+ Una o varias acciones de transición o vencimiento con una fecha o un periodo de tiempo en la vida del objeto en el que quiera que Amazon S3 realice la acción especificada. 

**Topics**
+ [Elemento ID](#intro-lifecycle-rule-id)
+ [Elemento Status](#intro-lifecycle-rule-status)
+ [Elemento Filter](#intro-lifecycle-rules-filter)
+ [Elementos para describir las acciones del ciclo de vida](#intro-lifecycle-rules-actions)
+ [Adición de filtros a reglas de Lifecycle](intro-lifecycle-filters.md)

En las siguientes secciones se describen los elementos XML de una configuración de S3 Lifecycle. Para ver configuraciones de ejemplo, consulte [Ejemplos de configuraciones de S3 Lifecycle](lifecycle-configuration-examples.md).

## Elemento ID
<a name="intro-lifecycle-rule-id"></a>

Las configuraciones del ciclo de vida se establecen por bucket y cada bucket tiene su propia configuración de ciclo de vida. Una configuración de S3 Lifecycle puede tener hasta 1000 reglas por bucket. Este límite no se puede ajustar. El elemento `<ID>` identifica de manera única una regla dentro de la configuración del ciclo de vida de un bucket. La longitud del ID está limitada a 255 caracteres.

## Elemento Status
<a name="intro-lifecycle-rule-status"></a>

El valor del elemento `<Status>` puede ser `Enabled` o `Disabled`. Si una regla está desactivada, Amazon S3 no realiza ninguna de las acciones definidas en ella.

## Elemento Filter
<a name="intro-lifecycle-rules-filter"></a>

Una regla de S3 Lifecycle se puede aplicar a todos los objetos o a un subconjunto de los objetos de un bucket, en función del elemento `<Filter>` que especifique en la regla. 

Puede filtrar los objetos por prefijo de clave, etiquetas de objeto o una combinación de ambos (en cuyo caso, Amazon S3 utilizará un operador lógico `AND` para combinar los filtros). Para obtener ejemplos y más información acerca de estos filtros, consulte [Adición de filtros a reglas de Lifecycle](intro-lifecycle-filters.md).
+ **Especificación de un filtro mediante prefijos de clave**: en este ejemplo se muestra una regla de S3 Lifecycle que se aplica a un subconjunto de objetos en función del prefijo del nombre de la clave (`logs/`). Por ejemplo, la regla de Lifecycle se aplica a los objetos `logs/mylog.txt`, `logs/temp1.txt` y `logs/test.txt`. La regla no se aplica al objeto `example.jpg`.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Prefix>logs/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
      ...
  </LifecycleConfiguration>
  ```

  Si quiere aplicar una acción de ciclo de vida a un subconjunto de objetos en función de diferentes prefijos de nombres de clave, especifique reglas por separado. En cada regla, especifique un filtro basado en prefijos. Por ejemplo, para describir una acción de Lifecycle para objetos con los prefijos de clave `projectA/` y `projectB/`, debe especificar dos reglas como se muestra a continuación: 

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Prefix>projectA/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
  
      <Rule>
          <Filter>
             <Prefix>projectB/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
  </LifecycleConfiguration>
  ```

  Para obtener más información sobre las claves de objetos, consulte [Denominación de objetos de Amazon S3](object-keys.md). 
+ **Especificación de un filtro mediante etiquetas de objetos**: en el siguiente ejemplo, la regla de Lifecycle especifica un filtro basado en una etiqueta (`key`) y valor (`value`). La regla se aplica solo a un subconjunto de objetos que tengan la etiqueta específica.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Tag>
                <Key>key</Key>
                <Value>value</Value>
             </Tag>
          </Filter>
          transition/expiration actions
          ...
      </Rule>
  </LifecycleConfiguration>
  ```

  Puede especificar un filtro sobre la base de varias etiquetas. Debe envolver las etiquetas con el elemento `<And>`, tal y como se muestra en el siguiente ejemplo. La regla indica a Amazon S3 que debe realizar acciones de ciclo de vida en objetos con dos etiquetas (con la clave y el valor específicos de la etiqueta).

  ```
  <LifecycleConfiguration>
      <Rule>
        <Filter>
           <And>
              <Tag>
                 <Key>key1</Key>
                 <Value>value1</Value>
              </Tag>
              <Tag>
                 <Key>key2</Key>
                 <Value>value2</Value>
              </Tag>
               ...
            </And>
        </Filter>
        transition/expiration actions
      </Rule>
  </Lifecycle>
  ```

  La regla de Lifecycle se aplica solo a un subconjunto de objetos que tengan la etiqueta específica. Amazon S3 realiza una operación lógica `AND`. Tenga en cuenta lo siguiente:
  + Cada etiqueta debe coincidir exactamente *tanto* con la clave como con el valor. Si especifica solo un elemento `<Key>` y no especifica ningún elemento `<Value>`, la regla se aplicará únicamente a los objetos que coincidan con la clave de la etiqueta y que *no* tengan un valor especificado.
  + La regla se aplica al subconjunto de objetos que tienen todas las etiquetas especificadas en la regla. Si un objeto tiene etiquetas adicionales especificadas, se seguirá aplicando la regla.
**nota**  
Al especificar varias etiquetas en un filtro, cada clave de etiqueta ha de ser exclusiva.
+ **Especificación de un filtro utilizando tanto el prefijo como una o varias etiquetas de objetos**: en una regla de Lifecycle, puede especificar un filtro basado tanto en el prefijo de clave como en una o varias etiquetas. Una vez más, debe envolver todos estos elementos de filtro con el elemento `<And>` como se muestra a continuación:

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
            <And>
               <Prefix>key-prefix</Prefix>
               <Tag>
                  <Key>key1</Key>
                  <Value>value1</Value>
               </Tag>
               <Tag>
                  <Key>key2</Key>
                  <Value>value2</Value>
               </Tag>
                ...
            </And>
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```

  Amazon S3 combina estos filtros mediante el operador lógico `AND`. Es decir, la regla se aplica al subconjunto de objetos con el prefijo de clave específico y las etiquetas específicas. Un filtro solo puede tener un prefijo y ninguna, una o varias etiquetas.
+ Puede especificar un **filtro vacío**, en cuyo caso, la regla se aplicará a todos los objetos del bucket.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
+ Para filtrar una regla por **tamaño de objeto**, puede especificar un tamaño mínimo (`ObjectSizeGreaterThan`) o un tamaño máximo (`ObjectSizeLessThan`), o bien puede especificar un rango de tamaños de objeto.

  Los valores de tamaño de objeto están expresados en bytes. De forma predeterminada, los objetos de menos de 128 KB no pasarán a ninguna clase de almacenamiento, a menos que especifique un tamaño mínimo menor (`ObjectSizeGreaterThan`) o un tamaño máximo (`ObjectSizeLessThan`). Para obtener más información, consulte [Ejemplo: Permitir la transición de objetos de menos de 128 KB](lifecycle-configuration-examples.md#lc-small-objects).

  ```
                      <LifecycleConfiguration>
      <Rule>
          <Filter>
              <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>   
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
**nota**  
Los filtros `ObjectSizeGreaterThan` y `ObjectSizeLessThan` excluyen los valores especificados. Por ejemplo, si establece objetos con un tamaño que abarca desde los 128 KB hasta los 1024 KB para pasar de la clase de almacenamiento S3 Standard a la clase de almacenamiento S3 Standard-IA, los objetos que tienen un tamaño exacto de 1024 KB y de 128 KB no pasarán a S3 Standard-IA. En cambio, la regla se aplicará únicamente a los objetos que tengan un tamaño superior a 128 KB e inferior a 1024 KB. 

  Si especifica un rango de tamaño de objeto, el número entero `ObjectSizeGreaterThan` debe ser menor que valor `ObjectSizeLessThan`. Cuando utilice más de un filtro, debe envolver los filtros en un elemento `<And>`. En el siguiente ejemplo, se muestra cómo especificar objetos en un rango de entre 500 y 64 000 bytes. 

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
              <And>
                  <Prefix>key-prefix</Prefix>
                  <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>
                  <ObjectSizeLessThan>64000</ObjectSizeLessThan>
              </And>    
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```

## Elementos para describir las acciones del ciclo de vida
<a name="intro-lifecycle-rules-actions"></a>

Puede ordenar a Amazon S3 que realice acciones específicas durante la vida útil de un objeto especificando una o varias de las siguientes acciones predefinidas en una regla de S3 Lifecycle. El efecto de estas acciones depende del estado del control de versiones del bucket. 
+ **Elemento de acción `Transition`**: puede especificar la acción `Transition` para pasar objetos de una clase de almacenamiento a otra. Para obtener más información acerca de las transiciones de objetos, consulte [Transiciones admitidas](lifecycle-transition-general-considerations.md#lifecycle-general-considerations-transition-sc). Cuando se llega a una fecha o periodo de tiempo específico en la vida útil del objeto, Amazon S3 lleva a cabo la transición. 

  Para un bucket con control de versiones (un bucket con el control de versiones habilitado o suspendido), la acción `Transition` se aplica a la versión del objeto actual. Para administrar las versiones no actuales, Amazon S3 define la acción `NoncurrentVersionTransition` (que se describe más adelante en este tema).
+ **Elemento de acción `Expiration`**: la acción `Expiration` hace que caduquen objetos identificados por la regla y se aplica a los objetos elegibles de cualquiera de las clases de almacenamiento de Amazon S3. Para obtener más información acerca de las clases de almacenamiento, consulte [Descripción y administración de clases de almacenamiento de Amazon S3](storage-class-intro.md). Amazon S3 hace que todos los objetos vencidos dejen de estar disponibles. La eliminación permanente de los objetos dependerá del estado del bucket en relación con el control de versiones. 
  + **Bucket sin control de versiones**: la acción `Expiration` da como resultado la eliminación permanente del objeto por parte de Amazon S3. 
  + **Bucket con control de versiones**: para un bucket con control de versiones (un bucket con el control de versiones habilitado o suspendido), hay varias consideraciones que se deben tener en cuenta en relación con cómo administra Amazon S3 la acción `Expiration`. En el caso de los buckets con el control de versiones activado o suspendido, se aplica lo siguiente:
    + La acción `Expiration` solo se aplica a la versión actual (no tiene ningún impacto sobre las versiones del objeto no actuales).
    + Amazon S3 no realiza ninguna acción si hay una o varias versiones del objeto y el marcador de eliminación es la versión actual.
    + Si la versión actual del objeto es la única versión del objeto y, además, es un marcador de eliminación (también denominado *marcador de eliminación de objeto vencido*, en el que todas las versiones del objeto se han eliminado y solo queda un marcador de eliminación), Amazon S3 elimina el marcador de eliminación del objeto vencido. También puede usar la acción de vencimiento para ordenar a Amazon S3 que elimine los marcadores de eliminación de objeto vencidos. Para ver un ejemplo, consulte [Eliminación de marcadores de eliminación de objetos vencidos en un bucket con control de versiones habilitado](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7). 

    Para obtener más información, consulte [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md).

    Tenga en cuenta también lo siguiente al configurar Amazon S3 para administrar el vencimiento:
    + **Bucket con control de versiones habilitado** 

      Si la versión actual del objeto no es un marcador de eliminación, Amazon S3 añade un marcador de eliminación con un ID de versión exclusivo. Esto convierte la versión actual en no actual, y el marcador de eliminación en la versión actual. 
    + **Bucket con control de versiones suspendido** 

      En un bucket con el control de versiones suspendido, la acción de vencimiento provoca que Amazon S3 cree un marcador de eliminación con un ID de versión `null`. Este marcador de eliminación sustituye cualquier versión del objeto con un ID de versión nulo en la jerarquía de versiones, lo que elimina el objeto de manera eficaz. 

Además, Amazon S3 facilita las siguientes acciones que puede utilizar para administrar las versiones de objetos no actuales en un bucket con control de versiones (en buckets con control de versiones activado o suspendido).
+ **Elemento de acción `NoncurrentVersionTransition`**: utilice esta acción para especificar cuándo Amazon S3 debe realizar la transición de los objetos a la clase de almacenamiento especificada. Puede basar esta transición en un número determinado de días desde que los objetos se vuelvan no actuales (`<NoncurrentDays>`). Además del número de días, también puede especificar el número de versiones no actuales (`<NewerNoncurrentVersions>`) que se deben retener (entre 1 y 100). Este valor especifica cuántas versiones no actuales más recientes deben existir para que Amazon S3 pueda realizar la transición a una versión determinada. Amazon S3 realizará la transición de cualquier versión no actual adicional más allá del número especificado para conservar. Para que se produzca la transición, deben superarse los valores de `<NoncurrentDays>` **y** `<NewerNoncurrentVersions>`.

  Para especificar el número de versiones no actuales que se deben retener, también debe proporcionar un elemento `<Filter>`. Si no especifica un elemento `<Filter>`, Amazon S3 genera un error `InvalidRequest` cuando especifica el número de versiones no actuales que se deben retener.

  Para obtener más información acerca de las transiciones de objetos, consulte [Transiciones admitidas](lifecycle-transition-general-considerations.md#lifecycle-general-considerations-transition-sc). Para obtener más información sobre cómo Amazon S3 calcula la fecha en la que especifica el número de días en la acción `NoncurrentVersionTransition`, consulte [Reglas de ciclo de vida: basadas en la edad de un objeto](#intro-lifecycle-rules-number-of-days).
+ **Elemento de acción `NoncurrentVersionExpiration`**: utilice esta acción para especificar a Amazon S3 que elimine de forma permanente versiones no actuales de objetos. Estos objetos eliminados no se pueden recuperar. Puede basar este vencimiento en un número determinado de días desde que los objetos han dejado de ser actuales (`<NoncurrentDays>`). Además del número de días, también puede especificar el número de versiones no actuales (`<NewerNoncurrentVersions>`) que se deben retener (entre 1 y 100). Este valor especifica cuántas versiones no actuales más recientes deben existir antes de que Amazon S3 pueda hacer que una versión determinada caduque. Amazon S3 eliminará de forma definitiva cualquier versión no actual adicional que supere el número especificado para conservar. Para que se produzca la eliminación, deben superarse los valores de `<NoncurrentDays>` **y** `<NewerNoncurrentVersions>`.

  Para especificar el número de versiones no actuales que se deben retener, también debe proporcionar un elemento `<Filter>`. Si no especifica un elemento `<Filter>`, Amazon S3 genera un error `InvalidRequest` cuando especifica el número de versiones no actuales que se deben retener.

  La eliminación retrasada de objetos no actuales puede resultar útil si necesita corregir eliminaciones o sobrescrituras accidentales. Por ejemplo, puede configurar una regla de vencimiento para eliminar las versiones no actuales después de cinco días desde que dejan de ser actuales. Por ejemplo, suponga que el 01/01/2014, a las 10:30 h UTC, creó un objeto denominado `photo.gif` (ID de versión 111111). El 02/01/2014, a las 11:30 h UTC, eliminó por accidente `photo.gif` (ID de versión 111111), lo que crea un marcador de eliminación con un nuevo ID de versión (por ejemplo: ID de versión 4857693). A partir de este momento tendrá cinco días para recuperar la versión original de `photo.gif` (ID de versión 111111) antes de que la eliminación sea permanente. El 08/01/2014, a las 00:00 h UTC, se ejecutará la regla de Lifecycle para el vencimiento y se eliminará permanentemente `photo.gif` (ID de versión 111111), cinco días después de que la versión dejase de ser actual. 

  Para obtener más información sobre cómo Amazon S3 calcula la fecha en la que especifica el número de días en una acción `NoncurrentVersionExpiration`, consulte [Reglas de ciclo de vida: basadas en la edad de un objeto](#intro-lifecycle-rules-number-of-days).
**nota**  
Las configuraciones del ciclo de vida de vencimiento de los objetos no eliminan las cargas multiparte incompletas. Para eliminar las cargas multiparte incompletas, deberá usar la acción de configuración Lifecycle `AbortIncompleteMultipartUpload` que se describe más adelante en esta sección. 

Además de las acciones de transición y vencimiento, puede usar las siguientes acciones de configuración de Lifecycle para ordenar a Amazon S3 que detenga las cargas multiparte incompletas o eliminar los marcadores de eliminación de objetos que vencieron. 
+ **Elemento de acción `AbortIncompleteMultipartUpload`**: use este elemento para establecer un tiempo máximo (en días) que quiera permitir que las cargas multiparte sigan estando en curso. Si las cargas multiparte aplicables (determinadas por el nombre de clave `prefix` especificado en la regla de Lifecycle) no se completan satisfactoriamente en el período de tiempo predefinido, Amazon S3 detiene las cargas multiparte incompletas. Para obtener más información, consulte [Anulación de la carga multiparte](abort-mpu.md). 
**nota**  
No puede especificar esta acción de Lifecycle en una regla que tenga un filtro que use etiquetas de objetos. 
+ **Elemento de acción `ExpiredObjectDeleteMarker`**: en un bucket con control de versiones habilitado, un marcador de eliminación sin versiones no actuales se denomina *marcador de eliminación del objeto vencido*. Puede usar esta acción de Lifecycle para ordenar a S3 que elimine los marcadores de eliminación del objetos vencidos. Para ver un ejemplo, consulta [Eliminación de marcadores de eliminación de objetos vencidos en un bucket con control de versiones habilitado](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7).
**nota**  
No puede especificar esta acción de Lifecycle en una regla que tenga un filtro que use etiquetas de objetos.

### Cómo calcula Amazon S3, el tiempo que un objeto lleva siendo no actual
<a name="non-current-days-calculations"></a>

Es posible tener varias versiones de un objeto en un bucket con control de versiones habilitado. Siempre habrá una versión actual y ninguna o varias versiones no actuales. Cada vez que carga un objeto, se conserva la versión actual como versión no actual, y la versión nueva, su sucesora, será la nueva versión actual. Para determinar el número de días que un objeto lleva siendo no actual, Amazon S3 analiza el momento en el que se creó su sucesor. Amazon S3 usa el número de días desde la creación de su sucesor como número de días durante los que un objeto no es actual.

**Restauración de versiones anteriores de un objeto al utilizar configuraciones de S3 Lifecycle**  
Como se explica en [Restaurar versiones anteriores](RestoringPreviousVersions.md), puede usar cualquiera de los siguientes dos métodos para recuperar versiones anteriores de un objeto:  
**Método 1: copiar una versión no actual del objeto en el mismo bucket.** El objeto copiado se convierte en la versión actual del mismo, y se conservan todas las versiones del objeto.
**Método 2: eliminar permanentemente la versión actual del objeto.** Al eliminar la versión actual del objeto, en efecto, estará convirtiendo la versión no actual en la versión actual del mismo. 
Cuando use las reglas de configuración de S3 Lifecycle en buckets con control de versiones, nuestra recomendación es que use el Método 1.   
S3 Lifecycle funciona bajo un modelo de coherencia final. Una versión actual eliminada permanentemente podría no desaparecer hasta que se propaguen los cambios a todos los sistemas de Amazon S3. (Por lo tanto, es posible que Amazon S3 desconozca temporalmente esta eliminación). Mientras tanto, la regla del ciclo de vida que haya configurado para hacer que venzan los objetos no actuales podría eliminar permanentemente los objetos no actuales, incluido el que quiera restaurar. Por ello, copiar la versión antigua, como se recomienda en el Método 1, es la alternativa más segura.

### Acciones de ciclo de vida y estado de control de versiones del bucket
<a name="lifecycle-actions-bucket-versioning-state"></a>

En la siguiente tabla se resume el comportamiento de las acciones de las reglas de configuración de S3 Lifecycle de los objetos en relación con el estado del control de versiones del bucket que contiene dichos objetos.


| Action | Bucket sin control de versiones (control de versiones no habilitado) | Bucket con control de versiones habilitado | Bucket con control de versiones suspendido | 
| --- | --- | --- | --- | 
|  `Transition` Cuando se llega a una fecha o periodo de tiempo específico en la vida útil del objeto.  | Amazon S3 pasa el objeto a la clase de almacenamiento especificada. | Amazon S3 pasa la versión actual del objeto a la clase de almacenamiento especificada. | Mismo comportamiento que en un bucket con control de versiones habilitado. | 
|  `Expiration` Cuando se llega a una fecha o periodo de tiempo específico en la vida útil del objeto.  | La acción Expiration elimina la versión no actual del objeto. El objeto eliminado no se puede recuperar. | Si la versión actual del objeto no es un marcador de eliminación, Amazon S3 crea un marcador de eliminación que se convierte en la versión actual, y la versión actual existente se conserva como versión no actual. | La acción de Lifecycle crea un marcador de eliminación con un ID de versión null, que se convierte en la versión actual. Ei el ID de versión de la versión actual del objeto es null, la acción Expiration elimina permanentemente esta versión. De lo contrario, se conservará la versión actual como versión no actual. | 
|  `NoncurrentVersionTransition` Para las versiones no actuales en un bucket con control de versiones habilitado o suspendido, S3 Lifecycle cambia un objeto cuando el número de días desde que el objeto ha dejado de ser actual supera tanto el valor especificado en **Días tras los que los objetos dejan de ser actuales** (`<NoncurrentDays>`) en la regla **como** cuando el número de versiones supera el valor especificado en **Número de versiones más recientes que retener** (`<NewerNoncurrentVersions>`) en la regla.  | NoncurrentVersionTransition no tiene ningún efecto. |  Amazon S3 pasa las versiones no actuales del objeto a la clase de almacenamiento especificada.  | Mismo comportamiento que en un bucket con control de versiones habilitado. | 
|  `NoncurrentVersionExpiration` Para las versiones no actuales en un bucket con control de versiones habilitado o suspendido, S3 Lifecycle hace caducar un objeto cuando el número de días desde que el objeto ha dejado de ser actual supera tanto el valor especificado en **Días tras los que los objetos dejan de ser actuales** (`<NoncurrentDays>`) en la regla **como** cuando el número de versiones supera el valor especificado en **Número de versiones más recientes que retener** (`<NewerNoncurrentVersions>`) en la regla.  | NoncurrentVersionExpiration no tiene ningún efecto. | La acción NoncurrentVersionExpiration elimina permanentemente la versión no actual del objeto y el objeto eliminado no se puede recuperar. | Mismo comportamiento que en un bucket con control de versiones habilitado. | 

### Reglas de ciclo de vida: basadas en la edad de un objeto
<a name="intro-lifecycle-rules-number-of-days"></a>

Puede especificar un período de tiempo, en número de días a partir de la creación (o modificación) del objeto, en el que Amazon S3 puede llevar a cabo la acción especificada. 

Al especificar el número de días en las acciones `Transition` y `Expiration` de una configuración de S3 Lifecycle, tenga en cuenta lo siguiente:
+ El valor que especifique es el número de días desde la creación del objeto tras los que ocurrirá la acción.
+ Amazon S3 calcula el tiempo agregando el número de días especificados en la regla al momento de creación del objeto y redondeando al alza el tiempo resultante a la medianoche del día siguiente, hora UTC. Por ejemplo, si un objeto se creó el 15/01/2014, a las 10:30 h, UTC, y la cantidad de días que especificó en una regla de transición es 3, la fecha de transición del objeto se calculará como 19/01/2014, a las 00:00 h, UTC. 

**nota**  
Amazon S3 solo conserva la última fecha de modificación para cada objeto. Por ejemplo, la consola de Amazon S3 muestra la fecha de **Última modificación** en el panel **Propiedades** del objeto. Al crear inicialmente un nuevo objeto, esta fecha refleja el momento de creación del objeto. Si se sustituye el objeto, la fecha cambia según sea necesario. Por lo tanto, la fecha de creación es sinónimo de la fecha de **Última modificación**. 

Al especificar el número de días en las acciones `NoncurrentVersionTransition` y `NoncurrentVersionExpiration` de una configuración de ciclo de vida, tenga en cuenta lo siguiente:
+ El valor que especifica es el número de días a partir del momento en el que la versión del objeto deja de ser actual (es decir, desde que se sobrescribe o se elimina un objeto), tras los cuales Amazon S3 realizará la acción en el objeto o los objetos especificados.
+ Amazon S3 calcula este momento agregando el número de días especificados en la regla a la hora en la que se creó la nueva versión sucesora del objeto, y redondea al alza la hora resultante a la medianoche del día siguiente, hora UTC. Por ejemplo, supongamos que en su bucket tiene la versión actual de un objeto creado el 01/01/2014, a las 10:30 a. m. UTC. Si la nueva versión del objeto que sustituye a la versión actual se creó el 15/01/2014 a las 10:30 a. m. UTC y se especifican tres días en una regla de transición, la fecha de transición del objeto calculada será 19/01/2014, a las 00:00 UTC. 

### Reglas de ciclo de vida: basadas en una fecha específica
<a name="intro-lifecycle-rules-date"></a>

Al especificar una acción en una regla del ciclo de vida de S3, puede especificar la fecha en la que desea que Amazon S3 realice la acción. Cuando llegue la fecha específica, Amazon S3 aplicará la acción a todos los objetos cualificados (según los criterios de filtrado). 

Si especifica una acción de S3 Lifecycle con una fecha en el pasado, todos los objetos cualificados serán inmediatamente aptos para esa acción de Lifecycle.

**importante**  
La acción basada en la fecha no es una acción puntual. Amazon S3 seguirá aplicando la acción basada en la fecha incluso después de que esta haya pasado, siempre que el estado de la regla sea `Enabled`.  
Por ejemplo, supongamos que especifica una acción de `Expiration` basada en una fecha para eliminar todos los objetos (y supongamos también que la regla no especifica ningún filtro). En la fecha especificada, Amazon S3 hace que venzan todos los objetos del bucket. Amazon S3 también seguirá haciendo que venzan los nuevos objetos creados en el bucket. Para detener la acción de Lifecycle, debe eliminar la acción de la regla de Lifecycle, deshabilitar la regla o eliminar la regla de la configuración de Lifecycle.

El valor de la fecha debe estar en formato ISO 8601. La hora siempre es medianoche UTC. 

**nota**  
No puede crear reglas de Lifecycle basadas en una fecha con la consola de Amazon S3, pero sí que puede usarla para ver, deshabilitar o eliminar esas reglas. 

# Adición de filtros a reglas de Lifecycle
<a name="intro-lifecycle-filters"></a>

Los filtros son un elemento de regla de Lifecycle opcional que puede usar para especificar a qué objetos se aplica la regla.

Se pueden utilizar los siguientes elementos para filtrar objetos:

**Prefijo de clave**  
Puede filtrar objetos basándose en un prefijo. Si desea aplicar una acción de ciclo de vida a un subconjunto de objetos con prefijos diferentes, cree reglas separadas para cada acción.

**Etiquetas de objetos**  
Puede filtrar objetos según una o más etiquetas. Cada etiqueta debe coincidir con la clave y el valor de forma exacta y, si se especifican varias etiquetas, cada clave de etiqueta debe ser exclusiva. Un filtro con varias etiquetas de objetos se aplica al subconjunto de objetos que tienen todas las etiquetas especificadas. Si un objeto tiene etiquetas adicionales especificadas, se seguirá aplicando el filtro.  
Si especifica solo un elemento `Key` y no especifica ningún elemento `Value`, la regla se aplicará únicamente a los objetos que coincidan con la clave de la etiqueta y que no tengan un valor especificado.

**Tamaño mínimo o máximo del objeto**  
Puede filtrar objetos según el tamaño. Puede especificar un tamaño mínimo (`ObjectSizeGreaterThan`) o un tamaño máximo (`ObjectSizeLessThan`), o bien puede especificar un rango de tamaños de objeto en el mismo filtro. Los valores de tamaño de objeto están expresados en bytes. El tamaño máximo del filtro es de 50 TB. Amazon S3 aplica un tamaño de objeto mínimo predeterminado a la configuración del ciclo de vida. Para obtener más información, consulte [Ejemplo: Permitir la transición de objetos de menos de 128 KB](lifecycle-configuration-examples.md#lc-small-objects).

Puede combinar diferentes elementos de filtro, en cuyo caso Amazon S3 utiliza un `AND` lógico.

## Ejemplos de filtro
<a name="filter-examples"></a>

En los siguientes ejemplos, se muestra cómo puede usar diferentes elementos de filtro:
+ **Especificación de un filtro mediante prefijos de clave**: en este ejemplo se muestra una regla de S3 Lifecycle que se aplica a un subconjunto de objetos en función del prefijo del nombre de la clave (`logs/`). Por ejemplo, la regla de Lifecycle se aplica a los objetos `logs/mylog.txt`, `logs/temp1.txt` y `logs/test.txt`. La regla no se aplica al objeto `example.jpg`.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Prefix>logs/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
      ...
  </LifecycleConfiguration>
  ```
**nota**  
 Si tiene uno o más prefijos que comienzan con los mismos caracteres, puede incluir todos esos prefijos en la regla especificando un prefijo parcial sin barra al final (`/`) en el filtro. Por ejemplo, supongamos que dispone de los siguientes prefijos:  

  ```
  sales1999/
                  sales2000/
                  sales2001/
  ```
Para incluir los tres prefijos en la regla, especifique `sales` como prefijo en la regla de ciclo de vida.

  Si quiere aplicar una acción de ciclo de vida a un subconjunto de objetos en función de diferentes prefijos de nombres de clave, especifique reglas por separado. En cada regla, especifique un filtro basado en prefijos. Por ejemplo, para describir una acción de Lifecycle para objetos con los prefijos de clave `projectA/` y `projectB/`, debe especificar dos reglas como se muestra a continuación: 

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Prefix>projectA/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
  
      <Rule>
          <Filter>
             <Prefix>projectB/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
  </LifecycleConfiguration>
  ```

  Para obtener más información sobre las claves de objetos, consulte [Denominación de objetos de Amazon S3](object-keys.md). 
+ **Especificación de un filtro mediante etiquetas de objetos**: en el siguiente ejemplo, la regla de Lifecycle especifica un filtro basado en una etiqueta (`key`) y valor (`value`). La regla se aplica solo a un subconjunto de objetos que tengan la etiqueta específica.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Tag>
                <Key>key</Key>
                <Value>value</Value>
             </Tag>
          </Filter>
          transition/expiration actions
          ...
      </Rule>
  </LifecycleConfiguration>
  ```

  Puede especificar un filtro sobre la base de varias etiquetas. Debe envolver las etiquetas con el elemento `<And>`, tal y como se muestra en el siguiente ejemplo. La regla indica a Amazon S3 que debe realizar acciones de ciclo de vida en objetos con dos etiquetas (con la clave y el valor específicos de la etiqueta).

  ```
  <LifecycleConfiguration>
      <Rule>
        <Filter>
           <And>
              <Tag>
                 <Key>key1</Key>
                 <Value>value1</Value>
              </Tag>
              <Tag>
                 <Key>key2</Key>
                 <Value>value2</Value>
              </Tag>
               ...
            </And>
        </Filter>
        transition/expiration actions
      </Rule>
  </Lifecycle>
  ```

  La regla de Lifecycle se aplica solo a un subconjunto de objetos que tengan la etiqueta específica. Amazon S3 realiza una operación lógica `AND`. Tenga en cuenta lo siguiente:
  + Cada etiqueta debe coincidir exactamente *tanto* con la clave como con el valor. Si especifica solo un elemento `<Key>` y no especifica ningún elemento `<Value>`, la regla se aplicará únicamente a los objetos que coincidan con la clave de la etiqueta y que *no* tengan un valor especificado.
  + La regla se aplica al subconjunto de objetos que tienen todas las etiquetas especificadas en la regla. Si un objeto tiene etiquetas adicionales especificadas, se seguirá aplicando la regla.
**nota**  
Al especificar varias etiquetas en un filtro, cada clave de etiqueta ha de ser exclusiva.
+ **Especificación de un filtro utilizando tanto el prefijo como una o varias etiquetas de objetos**: en una regla de Lifecycle, puede especificar un filtro basado tanto en el prefijo de clave como en una o varias etiquetas. Una vez más, debe envolver todos estos elementos de filtro con el elemento `<And>` como se muestra a continuación:

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
            <And>
               <Prefix>key-prefix</Prefix>
               <Tag>
                  <Key>key1</Key>
                  <Value>value1</Value>
               </Tag>
               <Tag>
                  <Key>key2</Key>
                  <Value>value2</Value>
               </Tag>
                ...
            </And>
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```

  Amazon S3 combina estos filtros mediante el operador lógico `AND`. Es decir, la regla se aplica al subconjunto de objetos con el prefijo de clave específico y las etiquetas específicas. Un filtro solo puede tener un prefijo y ninguna, una o varias etiquetas.
+ **Especificación de un filtro vacío**: puede especificar un filtro vacío, en cuyo caso, la regla se aplicará a todos los objetos del bucket.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
+ **Especificación de un filtro de tamaño de objeto**: para filtrar una regla por tamaño de objeto, puede especificar un tamaño mínimo (`ObjectSizeGreaterThan`) o un tamaño máximo (`ObjectSizeLessThan`), o bien puede especificar un rango de tamaños de objeto.

  Los valores de tamaño de objeto están expresados en bytes. El tamaño máximo del filtro es de 50 TB. Algunas clases de almacenamiento tienen limitaciones mínimas de tamaño de objeto. Para obtener más información, consulte [Comparación de las clases de almacenamiento de Amazon S3](storage-class-intro.md#sc-compare).

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
              <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>   
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
**nota**  
Los filtros `ObjectSizeGreaterThan` y `ObjectSizeLessThan` excluyen los valores especificados. Por ejemplo, si establece objetos con un tamaño que abarca desde los 128 KB hasta los 1024 KB para pasar de la clase de almacenamiento S3 Standard a la clase de almacenamiento S3 Standard-IA, los objetos que tienen un tamaño exacto de 1024 KB y de 128 KB no pasarán a S3 Standard-IA. En cambio, la regla se aplicará únicamente a los objetos que tengan un tamaño superior a 128 KB e inferior a 1024 KB. 

  Si especifica un rango de tamaño de objeto, el número entero `ObjectSizeGreaterThan` debe ser menor que valor `ObjectSizeLessThan`. Cuando utilice más de un filtro, debe envolver los filtros en un elemento `<And>`. En el siguiente ejemplo, se muestra cómo especificar objetos en un rango de entre 500 y 64 000 bytes. 

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
              <And>
                  <Prefix>key-prefix</Prefix>
                  <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>
                  <ObjectSizeLessThan>64000</ObjectSizeLessThan>
              </And>    
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```

# Procesamiento de Amazon S3 de los conflictos en las configuraciones del ciclo de vida
<a name="lifecycle-conflicts"></a>

En general, Amazon S3 Lifecycle optimiza el coste. Por ejemplo, si dos políticas de vencimiento se superponen, se respeta la política con una fecha de vencimiento anterior para que los datos no permanezcan almacenados más tiempo de lo previsto. Del mismo modo, si dos políticas de transición se superponen, S3 Lifecycle pasa los objetos a la clase de almacenamiento con costos inferiores.

En ambos casos, S3 Lifecycle intenta elegir la opción que le resulte menos costosa. Una excepción a esta regla general es la clase de almacenamiento S3 Intelligent-Tiering (Capas inteligentes de S3). S3 Intelligent-Tiering se ve favorecido por S3 Lifecycle sobre cualquier clase de almacenamiento, aparte de las clases de almacenamiento de S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive.

Cuando tiene varias reglas en una configuración de S3 Lifecycle, un objeto puede reunir los requisitos para varias acciones de S3 Lifecycle realizadas el mismo día. En tales casos, Amazon S3 sigue estas reglas generales:
+ La eliminación permanente prevalece sobre la transición.
+ La transición prevalece sobre la creación de [marcadores de eliminación](DeleteMarker.md).
+ Cuando un objeto es apto para una transición S3 Glacier Flexible Retrieval y una transición S3 Standard-IA (o una transición S3 One Zone-IA), Amazon S3 elige la transición S3 Glacier Flexible Retrieval.

## Ejemplos de superposición de filtros y conflictos entre acciones del ciclo de vida
<a name="lifecycle-config-conceptual-ex5"></a>

Es posible que especifique una configuración de S3 Lifecycle en la que especifique prefijos o acciones superpuestos. En los siguientes ejemplos, se muestra cómo Amazon S3 resuelve posibles conflictos.

**Example 1: Superponer prefijos (sin conflicto)**  
El siguiente ejemplo de configuración tiene dos reglas que especifican prefijos superpuestos de la siguiente manera:  
+ La primera regla especifica un filtro vacío que denota todos los objetos en el bucket. 
+ La segunda regla especifica un prefijo de nombre de clave (`logs/`) que solo denota un subconjunto de objetos.
La regla 1 solicita a Amazon S3 que elimine todos los objetos un año después de su creación. La regla 2 solicita a Amazon S3 que realice la transición de un subconjunto de objetos a la clase de almacenamiento S3 Standard-IA 30 días después de su creación.  

```
 1. <LifecycleConfiguration>
 2.   <Rule>
 3.     <ID>Rule 1</ID>
 4.     <Filter>
 5.     </Filter>
 6.     <Status>Enabled</Status>
 7.     <Expiration>
 8.       <Days>365</Days>
 9.     </Expiration>
10.   </Rule>
11.   <Rule>
12.     <ID>Rule 2</ID>
13.     <Filter>
14.       <Prefix>logs/</Prefix>
15.     </Filter>
16.     <Status>Enabled</Status>
17.     <Transition>
18.       <StorageClass>STANDARD_IA</StorageClass>
19.       <Days>30</Days>
20.     </Transition>
21.    </Rule>
22. </LifecycleConfiguration>
```
Dado que no hay conflicto en este caso, Amazon S3 hará la transición de los objetos con el prefijo `logs/` a la clase de almacenamiento S3 Standard-IA 30 días después de su creación. Cuando un objeto llegue a un año después de su creación, se eliminará.

**Example 2: conflictos entre acciones del ciclo de vida**  
En este ejemplo de configuración, existen dos reglas que le indican a Amazon S3 que realice dos acciones diferentes en el mismo conjunto de objetos al mismo tiempo durante la vida útil de los objetos:  
+ Ambas reglas especifican el mismo prefijo de nombre de clave, por lo que ambas reglas se aplican al mismo conjunto de objetos.
+ Ambas reglas especifican el mismo momento de aplicación de las reglas, es decir, 365 días después de la creación de los objetos.
+ Una regla le indica a Amazon S3 que pase objetos a la clase de almacenamiento S3 Standard-IA y la otra regla desea que Amazon S3 provoque el vencimiento de los objetos al mismo tiempo.

```
<LifecycleConfiguration>
  <Rule>
    <ID>Rule 1</ID>
    <Filter>
      <Prefix>logs/</Prefix>
    </Filter>
    <Status>Enabled</Status>
    <Expiration>
      <Days>365</Days>
    </Expiration>        
  </Rule>
  <Rule>
    <ID>Rule 2</ID>
    <Filter>
      <Prefix>logs/</Prefix>
    </Filter>
    <Status>Enabled</Status>
    <Transition>
      <StorageClass>STANDARD_IA</StorageClass>
      <Days>365</Days>
    </Transition>
   </Rule>
</LifecycleConfiguration>
```
En este caso, como usted desea que los objetos venzan (se eliminen), no tiene sentido cambiar la clase de almacenamiento, por lo que Amazon S3 opta por realizar la acción de vencimiento en estos objetos.

**Example 3: Superponer prefijos causa conflictos entre acciones del ciclo de vida**  
En este ejemplo, la configuración tiene dos reglas que especifican prefijos superpuestos de la siguiente manera:  
+ La regla 1 especifica un prefijo vacío (que denota todos los objetos).
+ La regla 2 especifica un prefijo de nombre de clave (`logs/`) que identifica un subconjunto de todos los objetos.
Para el subconjunto de objetos con el prefijo de nombre de clave `logs/`, se aplican las acciones de S3 Lifecycle de ambas reglas. Una regla le indica a Amazon S3 que pase los objetos 10 días después de su creación y otra regla le indica a Amazon S3 que pase los objetos 365 días después de su creación.   

```
<LifecycleConfiguration>
  <Rule>
    <ID>Rule 1</ID>
    <Filter>
      <Prefix></Prefix>
    </Filter>
    <Status>Enabled</Status>
    <Transition>
      <StorageClass>STANDARD_IA</StorageClass>
      <Days>10</Days> 
    </Transition>
  </Rule>
  <Rule>
    <ID>Rule 2</ID>
    <Filter>
      <Prefix>logs/</Prefix>
    </Filter>
    <Status>Enabled</Status>
    <Transition>
      <StorageClass>STANDARD_IA</StorageClass>
      <Days>365</Days> 
    </Transition>
   </Rule>
</LifecycleConfiguration>
```
En este caso, Amazon S3 opta por pasarlos 10 días después de su creación. 

**Example 4: filtros basados en etiquetas y conflictos entre acciones de ciclo de vida resultantes**  
Suponga que tiene la siguiente configuración de Ciclo de vida de S3 con dos reglas, cada una de las cuales especifica un filtro de etiquetas:  
+ La regla 1 especifica un filtro basado en etiquetas (`tag1/value1`). Esta regla le indica a Amazon S3 que pase los objetos a la clase de almacenamiento S3 Glacier Flexible Retrieval 365 días después de su creación.
+ La regla 2 especifica un filtro basado en etiquetas (`tag2/value2`). Esta regla le indica a Amazon S3 que provoque el vencimiento de los objetos 14 días después de su creación.
La configuración de S3 Lifecycle se muestra en el siguiente ejemplo.  

```
<LifecycleConfiguration>
  <Rule>
    <ID>Rule 1</ID>
    <Filter>
      <Tag>
         <Key>tag1</Key>
         <Value>value1</Value>
      </Tag>
    </Filter>
    <Status>Enabled</Status>
    <Transition>
      <StorageClass>GLACIER</StorageClass>
      <Days>365</Days> 
    </Transition>
  </Rule>
  <Rule>
    <ID>Rule 2</ID>
    <Filter>
      <Tag>
         <Key>tag2</Key>
         <Value>value2</Value>
      </Tag>
    </Filter>
    <Status>Enabled</Status>
    <Expiration>
      <Days>14</Days> 
    </Expiration>
   </Rule>
</LifecycleConfiguration>
```
Si un objeto tiene ambas etiquetas, Amazon S3 tiene que decidir qué regla seguir. En este caso, Amazon S3 provoca el vencimiento del objeto 14 días después de su creación. El objeto se elimina y, por lo tanto, la acción de transición no se aplica.





# Ejemplos de configuraciones de S3 Lifecycle
<a name="lifecycle-configuration-examples"></a>

En esta sección se proporcionan ejemplos de configuración de S3 Lifecycle. Cada ejemplo muestra cómo puede especificar el archivo XML en cada uno de los ejemplos de casos.

**Topics**
+ [Archivado de todos los objetos en el plazo de un día después de su creación](#lifecycle-config-ex1)
+ [Deshabilitación temporal de las reglas de Lifecycle](#lifecycle-config-conceptual-ex2)
+ [Transición entre las clases de almacenamiento durante la vida útil de un objeto](#lifecycle-config-conceptual-ex3)
+ [Especificación de varias reglas](#lifecycle-config-conceptual-ex4)
+ [Especificación de una regla del ciclo de vida para un bucket con el control de versiones habilitado](#lifecycle-config-conceptual-ex6)
+ [Eliminación de marcadores de eliminación de objetos vencidos en un bucket con control de versiones habilitado](#lifecycle-config-conceptual-ex7)
+ [Configuración del ciclo de vida para anular cargas multipartes](#lc-expire-mpu)
+ [Objetos no actuales que vencen y no tienen datos](#lc-size-rules)
+ [Ejemplo: Permitir la transición de objetos de menos de 128 KB](#lc-small-objects)

## Archivado de todos los objetos en el plazo de un día después de su creación
<a name="lifecycle-config-ex1"></a>

Cada regla de S3 Lifecycle incluye un filtro que puede utilizar para identificar un subconjunto de objetos en el bucket al que se aplica la regla de S3 Lifecycle. Las siguientes configuraciones de ciclo de vida de S3 muestran ejemplos de cómo puede especificar un filtro.
+ En esta regla de configuración del ciclo de vida de S3, el filtro especifica un prefijo de clave (`tax/`). Por lo tanto, la regla se aplica a objetos con el prefijo de nombre de clave `tax/`, como `tax/doc1.txt` y `tax/doc2.txt`.

  La regla especifica dos acciones que indican a Amazon S3 realizar lo siguiente:
  + Pasar objetos a la clase de almacenamiento S3 Glacier Flexible Retrieval 365 días (un año) después de su creación.
  + Eliminar objetos (la acción `Expiration`) 3650 días (10 años) después de su creación.

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

  En lugar de especificar la antigüedad del objeto en términos de días después de su creación, puede especificar una fecha para cada acción. Sin embargo, no puede usar `Date` y `Days` en la misma regla. 
+ Si desea que la regla de S3 Lifecycle se aplique a todos los objetos del bucket, especifique un prefijo vacío. En la siguiente configuración, la regla especifica una acción `Transition` que le indica a Amazon S3 que pase los objetos a la clase de almacenamiento S3 Glacier Flexible Retrieval 0 días después de su creación. Esta regla significa que los objetos pueden archivarse en S3 Glacier Flexible Retrieval a la medianoche (UTC) después de su creación. Para obtener más información acerca de las restricciones del ciclo de vida, consulte [Restricciones y consideraciones para las transiciones](lifecycle-transition-general-considerations.md#lifecycle-configuration-constraints).

  ```
  <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>
  ```
+ Puede especificar cero o un prefijo de nombre de clave y cero o más etiquetas de objetos en un filtro. El siguiente ejemplo de código aplica la regla de S3 Lifecycle a un subconjunto de objetos con el prefijo de clave `tax/` y a objetos que tienen dos etiquetas con clave y valor específicos. Cuando especifica más de un filtro, debe incluir el elemento `<And>` como se muestra (Amazon S3 aplica un `AND` lógico para combinar las condiciones del filtro especificadas).

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

  
+ Puede filtrar objetos solo según etiquetas. Por ejemplo, la siguiente regla de S3 Lifecycle se aplica a objetos que tienen dos etiquetas especificadas (no especifica ningún prefijo).

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

  

**importante**  
Cuando tiene varias reglas en una configuración de S3 Lifecycle, un objeto puede reunir los requisitos para varias acciones de S3 Lifecycle realizadas el mismo día. En tales casos, Amazon S3 sigue estas reglas generales:  
La eliminación permanente prevalece sobre la transición.
La transición prevalece sobre la creación de [marcadores de eliminación](DeleteMarker.md).
Cuando un objeto es elegible para una transición S3 Glacier Flexible Retrieval y S3 Standard-IA (o S3 One Zone-IA), Amazon S3 elige la transición S3 Glacier Flexible Retrieval.
 Para ver ejemplos, consulte [Ejemplos de superposición de filtros y conflictos entre acciones del ciclo de vida](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 



## Deshabilitación temporal de las reglas de Lifecycle
<a name="lifecycle-config-conceptual-ex2"></a>

Puede deshabilitar temporalmente una regla de S3 Lifecycle mediante el elemento `status`. Esto puede resultar útil si desea probar nuevas reglas o solucionar problemas con la configuración, sin sobrescribir las reglas existentes. La siguiente configuración de S3 Lifecycle especifica dos reglas:
+ La regla 1 indica a Amazon S3 que realice la transición de los objetos con el prefijo `logs/` a la clase de almacenamiento S3 Glacier Flexible Retrieval inmediatamente después de su creación. 
+ La regla 2 indica a Amazon S3 que realice la transición de los objetos con el prefijo `documents/` a la clase de almacenamiento S3 Glacier Flexible Retrieval inmediatamente después de su creación. 

En la configuración, la regla 1 está habilitada y la regla 2 está deshabilitada. Amazon S3 ignora las reglas deshabilitadas.

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

## Transición entre las clases de almacenamiento durante la vida útil de un objeto
<a name="lifecycle-config-conceptual-ex3"></a>

En este ejemplo, se usa la configuración de S3 Lifecycle para pasar objetos a otras clases de almacenamiento durante su vida útil. La transición entre clases de almacenamiento puede ayudar a reducir los costos de almacenamiento. Para obtener más información acerca de los precios, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

La siguiente configuración de S3 Lifecycle especifica una regla que se aplica a objetos con el prefijo de nombre de clave `logs/`. La regla especifica las siguientes acciones:
+ Dos acciones de transición:
  + Pasar objetos a la clase de almacenamiento S3 Standard-IA 30 días después de su creación
  + Pasar objetos a la clase de almacenamiento S3 Glacier Flexible Retrieval 90 días después de su creación.
+ Una acción de vencimiento que le indica a Amazon S3 que elimine los objetos un año después de su creación

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

**nota**  
Puede usar una regla para describir todas las acciones de S3 Lifecycle si todas las acciones se aplican al mismo conjunto de objetos (identificado por un filtro). Por otro lado, puede añadir varias reglas que especifiquen de manera individual un filtro diferente.

**importante**  
Cuando tiene varias reglas en una configuración de S3 Lifecycle, un objeto puede reunir los requisitos para varias acciones de S3 Lifecycle realizadas el mismo día. En tales casos, Amazon S3 sigue estas reglas generales:  
La eliminación permanente prevalece sobre la transición.
La transición prevalece sobre la creación de [marcadores de eliminación](DeleteMarker.md).
Cuando un objeto es elegible para una transición S3 Glacier Flexible Retrieval y S3 Standard-IA (o S3 One Zone-IA), Amazon S3 elige la transición S3 Glacier Flexible Retrieval.
 Para ver ejemplos, consulte [Ejemplos de superposición de filtros y conflictos entre acciones del ciclo de vida](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Especificación de varias reglas
<a name="lifecycle-config-conceptual-ex4"></a>



Puede especificar varias reglas si desea que se realicen diferentes acciones de S3 Lifecycle en diferentes objetos. La siguiente configuración de S3 Lifecycle tiene dos reglas:
+ La regla 1 se aplica a objetos con el prefijo de nombre de clave `classA/`. Le indica a Amazon S3 que pase los objetos a la clase de almacenamiento S3 Glacier Flexible Retrieval un año después de su creación y que provoque el vencimiento de estos objetos 10 años después de su creación.
+ La regla 2 se aplica a objetos con el prefijo de nombre de clave `classB/`. Le indica a Amazon S3 que pase los objetos a la clase de almacenamiento S3 Standard-IA 90 días después de su creación y que los elimine un año después de su creación.

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

**importante**  
Cuando tiene varias reglas en una configuración de S3 Lifecycle, un objeto puede reunir los requisitos para varias acciones de S3 Lifecycle realizadas el mismo día. En tales casos, Amazon S3 sigue estas reglas generales:  
La eliminación permanente prevalece sobre la transición.
La transición prevalece sobre la creación de [marcadores de eliminación](DeleteMarker.md).
Cuando un objeto es elegible para una transición S3 Glacier Flexible Retrieval y S3 Standard-IA (o S3 One Zone-IA), Amazon S3 elige la transición S3 Glacier Flexible Retrieval.
 Para ver ejemplos, consulte [Ejemplos de superposición de filtros y conflictos entre acciones del ciclo de vida](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Especificación de una regla del ciclo de vida para un bucket con el control de versiones habilitado
<a name="lifecycle-config-conceptual-ex6"></a>

Suponga que tiene un bucket habilitado para el control de versiones, lo cual significa que para cada objeto, tiene una versión actual y cero o más versiones no actuales. (Para obtener más información sobre S3 Versioning, consulte ). [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md).) 

En el siguiente ejemplo, desea mantener el valioso historial de un año y retener cinco versiones no actuales. Las configuraciones de S3 Lifecycle admiten mantener de 1 a 100 versiones de cualquier objeto. Tenga en cuenta que deben existir más de cinco versiones no actuales más recientes para que Amazon S3 pueda hacer que caduque una versión determinada. Amazon S3 eliminará de forma definitiva cualquier versión no actual adicional que supere el número especificado para conservar. Para que se produzca la eliminación, deben superarse los valores de `NoncurrentDays` y `NewerNoncurrentVersions`.

Para reducir los costos de almacenamiento, desea trasladar las versiones no actuales a la clase de almacenamiento S3 Glacier Flexible Retrieval 30 días después de que adquieren la condición de ser no actuales (sobre la base de la suposición de estos objetos no actuales son datos inactivos a los que no necesita obtener acceso en tiempo real). Asimismo, espera que disminuya la frecuencia de acceso de las versiones actuales a los 90 días después de su creación, por lo que puede elegir pasar estos objetos a la clase de almacenamiento S3 Standard-IA.

```
 1. <LifecycleConfiguration>
 2.     <Rule>
 3.         <ID>sample-rule</ID>
 4.         <Filter>
 5.            <Prefix></Prefix>
 6.         </Filter>
 7.         <Status>Enabled</Status>
 8.         <Transition>
 9.            <Days>90</Days>
10.            <StorageClass>STANDARD_IA</StorageClass>
11.         </Transition>
12.         <NoncurrentVersionTransition>      
13.             <NoncurrentDays>30</NoncurrentDays>      
14.             <StorageClass>GLACIER</StorageClass>   
15.         </NoncurrentVersionTransition>    
16.        <NoncurrentVersionExpiration>     
17.             <NewerNoncurrentVersions>5</NewerNoncurrentVersions>
18.             <NoncurrentDays>365</NoncurrentDays>    
19.        </NoncurrentVersionExpiration> 
20.     </Rule>
21. </LifecycleConfiguration>
```

## Eliminación de marcadores de eliminación de objetos vencidos en un bucket con control de versiones habilitado
<a name="lifecycle-config-conceptual-ex7"></a>



Un bucket habilitado para el control de versiones tiene una versión actual y cero o más versiones no actuales para cada objeto. Cuando elimina un objeto, tenga en cuenta lo siguiente:
+ Si no especifica una ID de versión en la solicitud de eliminación, Amazon S3 añade un marcador de eliminación en lugar de eliminar el objeto. La versión actual del objeto se convierte en no actual y el marcador de eliminación se convierte en la versión actual. 
+ Si especifica un ID de versión en la solicitud de eliminación, Amazon S3 elimina la versión del objeto de manera permanente (no se crea un marcador de eliminación).
+ Al marcador de eliminación con cero versiones no actuales se lo denomina *marcador de eliminación de objetos que vencieron*. 

En este ejemplo se muestra un caso en el que se pueden crear marcadores de eliminación de objetos que vencieron en el bucket y cómo puede usar la configuración de S3 Lifecycle para indicarle a Amazon S3 que elimine los marcadores de eliminación de objetos que vencieron.

Suponga que escribe una configuración de S3 Lifecycle que utiliza la acción `NoncurrentVersionExpiration` para eliminar las versiones no actuales 30 días después de que se conviertan en no actuales y retener como máximo 10 versiones no actuales, tal como se muestra en el ejemplo que sigue. Tenga en cuenta que deben existir más de diez versiones no actuales más recientes para que Amazon S3 pueda hacer que caduque una versión determinada. Amazon S3 eliminará de forma definitiva cualquier versión no actual adicional que supere el número especificado para conservar. Para que se produzca la eliminación, deben superarse los valores de `NoncurrentDays` y `NewerNoncurrentVersions`.

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

La acción `NoncurrentVersionExpiration` no se aplica a las versiones actuales del objeto. Elimina solo las versiones no actuales.

En el caso de las versiones actuales de los objetos, tiene las siguientes opciones para administrar su vida útil según si las versiones actuales de los objetos siguen un ciclo de vida bien definido: 
+ **Las versiones actuales de los objetos siguen un ciclo de vida bien definido.**

  En este caso, puede utilizar una política de Ciclo de vida de S3 con la acción `Expiration` para indicarle a Amazon S3 que elimine las versiones actuales, tal como se muestra en el siguiente ejemplo.

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

  En este ejemplo, Amazon S3 elimina las versiones actuales 60 días después de que se crearon agregando un marcador de eliminación para cada versión actual del objeto. Este proceso convierte la versión actual en no actual, y el marcador de eliminación se convierte en la versión actual. Para obtener más información, consulte [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md). 
**nota**  
No puede especificar una etiqueta `Days` y `ExpiredObjectDeleteMarker` en la misma regla. Al especificar la etiqueta `Days`, Amazon S3 limpiará automáticamente `ExpiredObjectDeleteMarker` cuando los marcadores de eliminación sean lo suficientemente antiguos como para cumplir con los criterios de antigüedad. Para limpiar los marcadores de eliminación tan pronto como se conviertan en la única versión, cree una regla independiente con solo la etiqueta `ExpiredObjectDeleteMarker`.

  La acción `NoncurrentVersionExpiration` en la misma configuración de S3 Lifecycle elimina los objetos no actuales 30 días después de que adquieren la condición de ser no actuales. Por lo tanto, en este ejemplo todas las versiones de objetos se eliminan permanentemente 90 días después de la creación del objeto. Tenga en cuenta que, en este ejemplo, deben existir más de diez versiones no actuales más recientes para que Amazon S3 pueda hacer que caduque una versión determinada. Amazon S3 eliminará de forma definitiva cualquier versión no actual adicional que supere el número especificado para conservar. Para que se produzca la eliminación, deben superarse los valores de `NoncurrentDays` y `NewerNoncurrentVersions`. 

  Si bien durante este proceso se crean marcadores de eliminación de objetos vencidos, Amazon S3 detecta y elimina los marcadores de eliminación de objetos vencidos por usted. 
+ **Las versiones actuales de los objetos no tienen un ciclo de vida bien definido.** 

  En este caso, puede eliminar los objetos manualmente cuando no los necesita y así crear un marcador de eliminación con una o más versiones no actuales. Si la configuración de S3 Lifecycle con la acción `NoncurrentVersionExpiration` elimina todas las versiones no actuales, ahora tiene marcadores de eliminación de objetos que vencieron.

  Específicamente para este caso, la configuración de S3 Lifecycle proporciona una acción `Expiration` que puede utilizar para eliminar los marcadores de eliminación de objetos que vencieron.

  

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

Al establecer el elemento `ExpiredObjectDeleteMarker` como `true` en la acción `Expiration`, le indica a Amazon S3 que elimine los marcadores de eliminación de objetos que vencieron.

**nota**  
Cuando utiliza la acción de S3 Lifecycle de `ExpiredObjectDeleteMarker`, la regla no puede especificar un filtro basado en etiquetas.

## Configuración del ciclo de vida para anular cargas multipartes
<a name="lc-expire-mpu"></a>

Puede utilizar las operaciones de la API REST de carga multiparte de Amazon S3 para cargar objetos grandes en partes. Para obtener más información acerca de las cargas multipartes, consulte [Carga y copia de objetos con la carga multiparte en Amazon S3](mpuoverview.md). 

Mediante la configuración de S3 Lifecycle, puede indicarle a Amazon S3 que detenga las cargas multipartes incompletas (identificadas por el prefijo de nombre de clave especificado en la regla) si no se completan en una cantidad de días especificada después de iniciarse. Cuando Amazon S3 anula una carga multiparte, elimina todas las partes asociadas con la carga multiparte. Este proceso ayuda a controlar los costos de almacenamiento asegurándose de que no tenga cargas multipartes incompletas con partes que se almacenan en Amazon S3. 

**nota**  
Cuando utiliza la acción de S3 Lifecycle de `AbortIncompleteMultipartUpload`, la regla no puede especificar un filtro basado en etiquetas.

El siguiente es un ejemplo de configuración de S3 Lifecycle que especifica una regla con la acción `AbortIncompleteMultipartUpload`. Esta acción le indica a Amazon S3 que detenga las cargas multipartes incompletas siete días después de iniciarse.

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

## Objetos no actuales que vencen y no tienen datos
<a name="lc-size-rules"></a>

Puede crear reglas que realicen una transición de objetos basándose únicamente en su tamaño. Puede especificar un tamaño mínimo (`ObjectSizeGreaterThan`) o un tamaño máximo (`ObjectSizeLessThan`), o bien puede especificar un rango de tamaños de objeto en bytes. Cuando utilice más de un filtro como un prefijo y una regla de tamaño, debe envolver los filtros en un elemento `<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>
```

Cuando especifica un rango utilizando los elementos `ObjectSizeGreaterThan` y `ObjectSizeLessThan`, el tamaño máximo de objeto debe ser superior al tamaño mínimo de objeto. Cuando utilice más de un filtro, debe envolver los filtros en un elemento `<And>`. En el siguiente ejemplo, se muestra cómo especificar objetos en un rango de entre 500 y 64 000 bytes. Al especificar un rango, los filtros `ObjectSizeGreaterThan` y `ObjectSizeLessThan` excluyen los valores especificados. Para obtener más información, consulte [Elemento Filter](intro-lifecycle-rules.md#intro-lifecycle-rules-filter).

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

También puede crear reglas para caducar específicamente objetos no actuales que no tengan datos, incluidos los objetos de marcador de eliminación no actuales creados en un bucket con control de versiones habilitado. En el siguiente ejemplo se utiliza la acción `NoncurrentVersionExpiration` para eliminar las versiones no actuales 30 días después de que dejen de ser actuales y retener 10 versiones no actuales. En este ejemplo también se utiliza el elemento `ObjectSizeLessThan` para filtrar únicamente objetos sin datos. 

Tenga en cuenta que deben existir más de diez versiones no actuales más recientes para que Amazon S3 pueda hacer que caduque una versión determinada. Amazon S3 eliminará de forma definitiva cualquier versión no actual adicional que supere el número especificado para conservar. Para que se produzca la eliminación, deben superarse los valores de `NoncurrentDays` y `NewerNoncurrentVersions`. 

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

## Ejemplo: Permitir la transición de objetos de menos de 128 KB
<a name="lc-small-objects"></a>

Amazon S3 aplica un comportamiento predeterminado a la configuración de ciclo de vida que impide que los objetos de menos de 128 KB pasen a cualquier clase de almacenamiento. Puede permitir la transición de los objetos más pequeños mediante la agregación de un filtro de tamaño mínimo (`ObjectSizeGreaterThan`) o máximo (`ObjectSizeLessThan`) que especifique un tamaño más pequeño a la configuración. En el siguiente ejemplo se permite que cualquier objeto más pequeño de 128 KB pase a la clase de almacenamiento 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>
```

**nota**  
En septiembre de 2024, Amazon S3 actualizó el comportamiento de transición predeterminado para objetos pequeños, de la siguiente manera:  
**Comportamiento de transición predeterminado actualizado**: a partir de septiembre de 2024, el comportamiento predeterminado impide que los objetos de menos de 128 KB pasen a cualquier clase de almacenamiento.
**Comportamiento de transición predeterminado anterior**: antes de septiembre de 2024, el comportamiento predeterminado permitía que objetos de menos de 128 KB pasaran solo a las clases de almacenamiento S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive.
Las configuraciones creadas antes de septiembre de 2024 retienen el comportamiento de transición anterior, a menos que las modifique. Es decir, si crea, edita o elimina reglas, el comportamiento de transición predeterminado de la configuración cambia al comportamiento actualizado. Si su caso de uso lo requiere, puede cambiar el comportamiento de transición predeterminado para que los objetos de menos de 128 KB pasen a S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive. Para ello, utilice el encabezado `x-amz-transition-object-size-minimum-default` opcional en una solicitud [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html).

En el siguiente ejemplo se muestra cómo usar el encabezado `x-amz-transition-object-size-minimum-default` en una solicitud de [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) para aplicar el comportamiento de transición predeterminado `varies_by_storage_class` a una configuración de S3 Lifecycle. Este comportamiento permite que un objeto más pequeño de 128 KB pase a clases de almacenamiento S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive. De forma predeterminada, todas las demás clases de almacenamiento evitarán las transiciones de menos de 128 KB. Puede seguir utilizando filtros personalizados para cambiar el tamaño mínimo de transición de cualquier clase de almacenamiento. Los filtros personalizados siempre tienen prioridad sobre el comportamiento de transición predeterminado:

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

# Solución de problemas de Amazon S3 Lifecycle
<a name="troubleshoot-lifecycle"></a>

La siguiente información puede ayudarle a solucionar problemas habituales con las reglas de Amazon S3 Lifecycle.

**Topics**
+ [He ejecutado una operación de lista en mi bucket y he visto objetos que pensaba que habían caducado o efectuado una transición de conformidad con una regla del ciclo de vida.](#troubleshoot-lifecycle-1)
+ [¿Cómo puedo supervisar las acciones que se llevan a cabo según mis reglas de ciclo de vida?](#troubleshoot-lifecycle-2)
+ [Mi recuento de objetos de S3 sigue aumentando, incluso después de configurar reglas de ciclo de vida en un bucket con control de versiones habilitado.](#troubleshoot-lifecycle-3)
+ [¿Cómo puedo vaciar mi bucket de S3 con las reglas de ciclo de vida?](#troubleshoot-lifecycle-4)
+ [Mi factura de Amazon S3 ha aumentado tras pasar los objetos a una clase de almacenamiento más barata.](#troubleshoot-lifecycle-5)
+ [He actualizado mi política de bucket, pero las reglas del ciclo de vida caducadas siguen borrando mis objetos de S3.](#troubleshoot-lifecycle-6)
+ [¿Puedo recuperar objetos de S3 que hayan caducado según las reglas de S3 Lifecycle?](#troubleshoot-lifecycle-7)
+ [¿Por qué no se ejecutan mis acciones de caducidad y de transición del ciclo de vida?](#troubleshoot-lifecycle-failures)
+ [¿Cómo puedo excluir un prefijo de la regla de ciclo de vida?](#troubleshoot-lifecycle-8)
+ [¿Cómo puedo incluir varios prefijos en la regla de ciclo de vida?](#troubleshoot-lifecycle-9)

## He ejecutado una operación de lista en mi bucket y he visto objetos que pensaba que habían caducado o efectuado una transición de conformidad con una regla del ciclo de vida.
<a name="troubleshoot-lifecycle-1"></a>

Las [transiciones de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html) y [caducidades de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html) de S3 Lifecycle son operaciones asincrónicas. Por lo tanto, es posible que haya un retraso entre el momento en que los objetos cumplan los requisitos de caducidad o transición y el momento en que realmente estén cambiando o caduquen. Los cambios en la facturación se aplican en cuanto se cumple la regla de ciclo de vida, incluso aunque la acción no se haya completado. La excepción a este comportamiento es si hay una regla de ciclo de vida para pasar a la clase de almacenamiento S3 Intelligent-Tiering. En ese caso, los cambios en la facturación no se producen hasta que el objeto haya pasado a S3 Intelligent-Tiering. Para obtener más información sobre los cambios en la facturación, consulte [Configurar el ciclo de vida de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

**nota**  
Amazon S3 no realiza la transición de objetos de menos 128 KB de la clase de almacenamiento S3 Standard o S3 Standard-IA a la clase de almacenamiento S3 Intelligent-Tiering, S3 Standard-IA o S3 One Zone-IA.

## ¿Cómo puedo supervisar las acciones que se llevan a cabo según mis reglas de ciclo de vida?
<a name="troubleshoot-lifecycle-2"></a>

Para supervisar las acciones que se llevan a cabo según las reglas de ciclo de vida, puede utilizar las siguientes características: 
+ **Notificaciones de eventos de S3**: puede configurar las [notificaciones de eventos de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configure-notification.html) para que se le notifique cualquier evento de transición o de caducidad del ciclo de vida de S3.
+ **Registros de acceso al servidor de S3**: puede habilitar los registros de acceso al servidor para los buckets de S3 para capturar acciones del ciclo de vida de S3, como, por ejemplo, las transiciones de objetos a otra clase de almacenamiento o la caducidad de objetos. Para obtener más información, consulte [Ciclos de vida y registros](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-and-other-bucket-config.html#lifecycle-general-considerations-logging).

Para ver los cambios en el almacenamiento provocados por las acciones del ciclo de vida a diario, le recomendamos que utilice los [paneles de Almacenamiento de lente de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html#storage_lens_basics_dashboards) en lugar de utilizar las métricas de Amazon CloudWatch. En el panel de Almacenamiento de lente puede ver las siguientes métricas, que supervisan el número o el tamaño de los objetos:
+ **Bytes de la versión actual**
+ **Recuento de objetos de la versión actual**
+ **Bytes de la versión que no es actual**
+ **Recuento de objetos de la versión que no es actual**
+ **Recuento de objetos del marcador de eliminación**
+ **Bytes de almacenamiento del marcador de eliminación**
+ **Bytes de carga multiparte incompletos**
+ **Recuento de objetos con carga multiparte incompleta**

## Mi recuento de objetos de S3 sigue aumentando, incluso después de configurar reglas de ciclo de vida en un bucket con control de versiones habilitado.
<a name="troubleshoot-lifecycle-3"></a>

En un [bucket con control de versiones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html#versioning-states), cuando un objeto caduca, este no se elimina por completo del bucket. En su lugar, se crea un [marcador de eliminación](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html) como la versión más reciente del objeto. Los marcadores de eliminación también cuentan como objetos. Por lo tanto, si se crea una regla de ciclo de vida para que caduquen solo las versiones actuales, el recuento de objetos en el bucket de S3 en realidad aumenta en lugar de disminuir.

Por ejemplo, supongamos que un bucket de S3 tiene habilitado el control de versiones con 100 objetos y que una regla de ciclo de vida está configurada para que las versiones actuales del objeto caduquen transcurridos 7 días. Después del séptimo día, el recuento de objetos aumenta a 200 porque se crean 100 marcadores de eliminación además de los 100 objetos originales, que ahora son las versiones no actuales. Para obtener más información sobre las acciones de las reglas de configuración de S3 Lifecycle para los buckets con control de versiones, consulte [Configurar el ciclo de vida de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

Para eliminar objetos de forma permanente, añada una configuración de ciclo de vida adicional para eliminar las versiones anteriores de los objetos, los marcadores de eliminación caducados y las cargas multiparte incompletas. Para obtener instrucciones sobre cómo crear nuevas reglas de ciclo de vida, consulte [Configurar el ciclo de vida de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

**nota**  
Amazon S3 redondea la fecha de transición o de caducidad de un objeto a la medianoche UTC del día siguiente.   
Al evaluar los objetos para las acciones del ciclo de vida, Amazon S3 utiliza la hora de creación del objeto en UTC. Por ejemplo, supongamos que tenemos un bucket sin control de versiones con una regla de ciclo de vida configurada para que los objetos caduquen al cabo de un día. Supongamos que un objeto se creó el 1 de enero a las 17:05 PDT, que corresponde al 2 de enero a las 00:05 UTC. El objeto tiene un día de antigüedad a las 00:05 UTC del 3 de enero, por lo que podrá caducar cuando S3 Lifecycle evalúe los objetos a las 00:00 UTC del 4 de enero.  
Dado que las acciones del ciclo de vida de Amazon S3 se producen de forma asíncrona, es posible que haya algún retraso entre la fecha especificada en la regla del ciclo de vida y la transición física real del objeto. Para obtener más información, consulte [Retraso de caducidad o transición](how-to-set-lifecycle-configuration-intro.md#lifecycle-action-delay).  
Para obtener más información, consulte [Reglas de ciclo de vida: basadas en la edad de un objeto](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-number-of-days)
En el caso de los objetos de S3 que están protegidos por un bloqueo de objetos, las versiones actuales no se eliminan de forma permanente. En su lugar, se añade un marcador de eliminación a los objetos, por lo que dejan de ser actuales. Las versiones no actuales se conservan y no caducan de forma permanente.

## ¿Cómo puedo vaciar mi bucket de S3 con las reglas de ciclo de vida?
<a name="troubleshoot-lifecycle-4"></a>

Las reglas de ciclo de vida de S3 son una herramienta eficaz para [vaciar un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) de S3 con millones de objetos. Para eliminar una gran cantidad de objetos del bucket de S3, asegúrese de utilizar estos dos pares de reglas de ciclo de vida:
+ **Hacer que caduquen las versiones actuales de los objetos** y **Eliminar de forma permanente las versiones anteriores de los objetos**
+ **Eliminar los marcadores de eliminación caducados** y **Eliminar las cargas multiparte incompletas**

Para obtener instrucciones sobre cómo crear nuevas reglas de configuración del ciclo de vida, consulte [Configurar el ciclo de vida de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

**nota**  
En el caso de los objetos de S3 que están protegidos por un bloqueo de objetos, las versiones actuales no se eliminan de forma permanente. En su lugar, se añade un marcador de eliminación a los objetos, por lo que dejan de ser actuales. Las versiones no actuales se conservan y no caducan de forma permanente.

## Mi factura de Amazon S3 ha aumentado tras pasar los objetos a una clase de almacenamiento más barata.
<a name="troubleshoot-lifecycle-5"></a>

Hay varios motivos por los que la factura podría aumentar tras cambiar los objetos a una clase de almacenamiento más barata: 
+ Gastos generales de S3 Glacier para objetos pequeños

  Por cada objeto que pasa a S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive Flexible Retrieval, esta actualización de almacenamiento tiene asociada un gasto adicional total de 40 KB. Dentro del gasto adicional de 40 KB, se utilizan 8 KB para almacenar los metadatos y el nombre del objeto. Estos 8 KB se cobran según las tarifas de S3 Standard. Los 32 KB restantes se utilizan para la indexación y los metadatos relacionados. A estos 32 KB se les aplican los precios de S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive.

  Por lo tanto, si almacena muchos objetos de menor tamaño, no recomendamos utilizar transiciones del ciclo de vida. En su lugar, para reducir los cargos adicionales, le recomendamos agregar muchos objetos pequeños en un número menor de objetos grandes antes de almacenarlos en Amazon S3. Para obtener más información sobre las consideraciones de costos, consulte [Transición a las clases de almacenamiento S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive (archivo de objetos)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html#before-deciding-to-archive-objects).
+ Gastos de almacenamiento mínimos

  Algunas clases de almacenamiento de S3 tienen requisitos mínimos de duración de almacenamiento. A los objetos que se eliminen, sobrescriban o cambien de esas clases antes de cumplir con la duración mínima se les cobrará una tarifa de transición o eliminación anticipada prorrateada. Estos requisitos mínimos de duración del almacenamiento son los siguientes: 
  + S3 Standard-IA y S3 One Zone-IA: 30 días
  + S3 Glacier Flexible Retrieval y S3 Glacier Instant Retrieval: 90 días
  + S3 Glacier Deep Archive: 180 días

  Para obtener más información sobre estos requisitos, consulte la sección *Restricciones* de [Transición de objetos con Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html). Para obtener información general sobre los precios de S3, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/) y la [calculadora de precios de AWS](https://calculator.aws/#/addService/S3).
+ Costos de la transición del ciclo de vida

  Cada vez que un objeto pasa a una clase de almacenamiento diferente según la regla de ciclo de vida, Amazon S3 contabiliza dicha transición como una solicitud de transición. Los costos de estas solicitudes de transición se suman a los costos de esas clases de almacenamiento. Si tiene previsto pasar una gran cantidad de objetos, tenga en cuenta los costos de la solicitud al pasar a un nivel inferior. Para obtener más información, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

## He actualizado mi política de bucket, pero las reglas del ciclo de vida caducadas siguen borrando mis objetos de S3.
<a name="troubleshoot-lifecycle-6"></a>

Las instrucciones `Deny` de una política de bucket no impiden que caduquen los objetos definidos en una regla de ciclo de vida. Las acciones del ciclo de vida (como las transiciones o los vencimientos) no utilizan la operación `DeleteObject` de S3. En cambio, las acciones del ciclo de vida de S3 se realizan mediante puntos de conexión internos de S3. (Para obtener más información, consulte [Ciclos de vida y registros](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-and-other-bucket-config.html#lifecycle-general-considerations-logging)). 

Para evitar que la regla del ciclo de vida lleve a cabo alguna acción, debe editar, eliminar o [deshabilitar la regla](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lifecycle-config-conceptual-ex2).

## ¿Puedo recuperar objetos de S3 que hayan caducado según las reglas de S3 Lifecycle?
<a name="troubleshoot-lifecycle-7"></a>

La única forma de recuperar los objetos caducados de conformidad con S3 Lifecycle es mediante el control de versiones, que debe establecerse antes de que los objetos cumplan los requisitos de caducidad. No puede deshacer las operaciones de caducidad que realicen las reglas del ciclo de vida. Si las reglas de S3 Lifecycle eliminan los objetos de forma permanente, no podrá recuperarlos. Para habilitar el control de versiones en un bucket, consulte [Retención de varias versiones de objetos con Control de versiones de S3](Versioning.md).

Si ha aplicado el control de versiones al bucket y las versiones no actuales de los objetos siguen intactas, puede [restaurar las versiones anteriores de los objetos caducados](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RestoringPreviousVersions.html). Para obtener más información sobre el comportamiento de las acciones de las reglas y los estados de control de versiones de S3 Lifecycle, consulte la tabla *Acciones del ciclo de vida y estado de las versiones del bucket* en [Elementos para describir las acciones del ciclo de vida](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html#non-current-days-calculations).

**nota**  
Si el bucket de S3 está protegido por [Copia de seguridad de AWS](https://docs.aws.amazon.com/aws-backup/latest/devguide/s3-backups.html) o [Replicación de objetos de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html), es posible que también pueda utilizar estas funciones para recuperar los objetos caducados.

## ¿Por qué no se ejecutan mis acciones de caducidad y de transición del ciclo de vida?
<a name="troubleshoot-lifecycle-failures"></a>

En el caso de los buckets con el control de versiones habilitado o suspendido, las siguientes consideraciones determinan el modo en el que Amazon S3 administra la acción de caducidad.
+ La caducidad del objeto solo se aplica a la versión actual del objeto (no tiene ningún impacto sobre las versiones del objeto no actuales).
+ Amazon S3 no realiza ninguna acción si hay una o varias versiones del objeto y el marcador de eliminación es la versión actual.
+ Amazon S3 no realiza ninguna acción en las versiones no actuales de los objetos que tienen aplicado un bloqueo de objetos de S3.
+ En el caso de los objetos con un estado de replicación `PENDING`, Amazon S3 no realiza ninguna acción en las versiones actuales o no actuales de los objetos.

Las transiciones de clases de almacenamiento de ciclo de vida tienen las siguientes limitaciones:
+ De manera predeterminada, los objetos de menos de 128 KB no efectuarán la transición a ninguna clase de almacenamiento.
+ Los objetos se deben almacenar durante al menos 30 días antes de pasar a S3 Standard-IA o S3 One Zone-IA
+ En el caso de los buckets con el control de versiones habilitado o suspendido, los objetos con un estado de replicación `PENDING` no pueden efectuar la transición.

## ¿Cómo puedo excluir un prefijo de la regla de ciclo de vida?
<a name="troubleshoot-lifecycle-8"></a>

S3 Lifecycle no admite la exclusión de prefijos en sus reglas. En su lugar, utilice etiquetas para etiquetar todos los objetos que desee incluir en la regla. Para obtener más información sobre cómo usar etiquetas en reglas de ciclo de vida, consulte [Archivado de todos los objetos en el plazo de un día después de su creación](lifecycle-configuration-examples.md#lifecycle-config-ex1).

## ¿Cómo puedo incluir varios prefijos en la regla de ciclo de vida?
<a name="troubleshoot-lifecycle-9"></a>

S3 Lifecycle no permite incluir varios prefijos en sus reglas. En su lugar, utilice etiquetas para etiquetar todos los objetos que desee incluir en la regla. Para obtener más información sobre cómo usar etiquetas en reglas de ciclo de vida, consulte [Archivado de todos los objetos en el plazo de un día después de su creación](lifecycle-configuration-examples.md#lifecycle-config-ex1).

Sin embargo, si tiene uno o más prefijos que comienzan con los mismos caracteres, puede incluir todos esos prefijos en la regla especificando un prefijo parcial sin barra al final (`/`) en el filtro. Por ejemplo, supongamos que dispone de los siguientes prefijos:

```
sales1999/
sales2000/
sales2001/
```

Para incluir los tres prefijos en la regla, especifique `<Prefix>sales</Prefix>` en la regla de ciclo de vida. 