

# Gerenciar o ciclo de vida dos objetos
<a name="object-lifecycle-mgmt"></a>

O Ciclo de Vida do S3 ajuda você a armazenar objetos de forma econômica durante todo o respectivo ciclo de vida deles ao fazer a transição para classes de armazenamento de menor custo ou excluir objetos expirados em seu nome. Para gerenciar o ciclo de vida dos objetos, crie uma *configuração do Ciclo de Vida do S3* para o bucket. Uma configuração do Amazon S3 Lifecycle é um conjunto de regras que define as ações aplicadas pelo Amazon S3 a um grupo de objetos. Existem dois tipos de ações:
+ **Ações de transição:** estas ações definem quando os objetos fazem a transição para outra classe de armazenamento. Por exemplo, você pode optar por fazer a transição de objetos para a classe de armazenamento S3 Standard – IA 30 dias após a criação deles ou arquivar objetos para a classe de armazenamento do S3 Glacier Flexible Retrieval um ano após a sua criação. Para obter mais informações, consulte [Compreender e gerenciar classes de armazenamento do Amazon S3](storage-class-intro.md). 

  Há custos associados a solicitações de transição do ciclo de vida. Para obter informações sobre a definição de preços, consulte [Definição de preços do Amazon S3](https://aws.amazon.com/s3/pricing/).
+ **Ações de validade**: estas ações definem quando os objetos perdem a validade. O Amazon S3 exclui os objetos expirados em seu nome. Por exemplo, você pode optar por expirar os objetos armazenados após um período de conformidade regulamentar. Para obter mais informações, consulte [Expirando objetos](lifecycle-expire-general-considerations.md).

  Há possíveis custos associados à validade do ciclo de vida somente quando você encerra objetos em uma classe de armazenamento com uma duração mínima de armazenamento. Para obter mais informações, consulte [Cobrança da duração mínima de armazenamento](lifecycle-expire-general-considerations.md#lifecycle-expire-minimum-storage).

**Importante**  
**Buckets de uso geral**: você não pode usar uma política de bucket para evitar exclusões ou transições por meio de uma regra da funcionalidade Ciclo de Vida do S3. Por exemplo, mesmo que a política de bucket negue todas as ações para todas as entidades principais, a configuração do ciclo de vida do S3 ainda funcionará normalmente.

**Objetos existentes e novos**  
Quando você adiciona uma configuração do ciclo de vida a um bucket, as regras de configuração se aplicam aos objetos existentes e aos objetos que serão adicionados no futuro. Por exemplo, se você adicionar uma regra de configuração da funcionalidade Ciclo de Vida hoje com uma ação de expiração que faz com que os objetos expirem 30 dias após sua criação, o Amazon S3 organizará para exclusão todos os objetos existentes com mais de 30 dias.

**Alterações no faturamento**  
Se houver algum atraso entre quando um objeto se tornar elegível para uma ação de ciclo de vida e quando o Amazon S3 transferir ou expirar seu objeto, as alterações de faturamento serão aplicadas assim que o objeto se tornar qualificado para a ação de ciclo de vida. Por exemplo, se um objeto estiver programado para perder a validade e o Amazon S3 não o descontinuar imediatamente, você não receberá cobrança pelo armazenamento após o fim da validade. 

A única exceção a esse comportamento é se você tiver uma regra de ciclo de vida para a classe de armazenamento S3 Intelligent-Tiering. Nesse caso, as alterações no faturamento não acontecerão até que o objeto tenha feito a transição para o S3 Intelligent-Tiering. Para obter mais informações sobre regras do Amazon S3 Lifecycle, consulte [Elementos de configuração do ciclo de vida](intro-lifecycle-rules.md). 

**nota**  
Não há nenhuma cobrança de recuperação de dados para transições de ciclo de vida. No entanto, há cobranças de ingestão por solicitação ao usar regras de `PUT`, `COPY` ou ciclo de vida para transferir dados a qualquer classe de armazenamento do S3. Considere o custo de ingestão ou transição antes de transferir objetos a qualquer classe de armazenamento. Para obter mais informações sobre considerações de custo, consulte [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

**Monitorar o efeito de regras de ciclo de vida**  
Para monitorar o efeito das atualizações feitas pelas regras de ciclo de vida ativas, consulte [Como monitorar as ações realizadas pelas minhas regras de ciclo de vida?](troubleshoot-lifecycle.md#troubleshoot-lifecycle-2).

## Gerenciar o ciclo de vida completo dos objetos
<a name="lifecycle-config-overview-what"></a>

Com as regras de configuração de ciclo de vida do S3, é possível solicitar que o Amazon S3 faça a transição de objetos para classes de armazenamento menos caras, arquive-os ou os exclua. Por exemplo: 
+ Se você fizer upload periódico de logs em um bucket, é possível que seu aplicativo precise deles por uma semana ou um mês. Depois disso, você pode excluí-los.
+ Alguns documentos são acessados frequentemente por um período limitado. Depois disso, eles serão acessados com pouca frequência. Em algum ponto, você pode não precisar de acesso em tempo real a esses objetos, mas sua organização ou as regulamentações podem exigir que você os arquive por um período específico. Depois disso, é possível excluí-los. 
+ É possível fazer upload de alguns tipos de dados no Amazon S3 para fins de arquivamento. Por exemplo, é possível arquivar mídias digitais, registros financeiros e prontuários médicos, dados não processados de sequência genômica, backups de banco de dados de longo prazo e dados que devem ser retidos para conformidade regulatória.

Ao combinar ações do ciclo de vida do S3 para gerenciar o ciclo de vida completo de um objeto. Por exemplo, suponha que os objetos criados tenham um ciclo de vida bem definido. No início, os objetos são acessados com frequência em um período de 30 dias. Depois disso, eles são acessados com pouca frequência por 90 dias. Depois desse período, eles não são mais necessário. Portanto, é possível optar por arquivá-los ou excluí-los. 

Nesse cenário, você pode criar uma regra do S3 Lifecycle especificando a ação de transição inicial para armazenamento S3 Intelligent-Tiering, S3 Standard – IA ou S3 One Zone – IA, outra ação de transição para o armazenamento S3 Glacier Flexible Retrieval para arquivamento e uma ação de expiração. Ao mover objetos de uma classe de armazenamento para outra, você evita os custos de armazenamento. Para obter mais informações sobre considerações de custo, consulte [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Gerenciar o ciclo de vida completo dos objetos](#lifecycle-config-overview-what)
+ [Transição de objetos usando o Amazon S3 Lifecycle](lifecycle-transition-general-considerations.md)
+ [Expirando objetos](lifecycle-expire-general-considerations.md)
+ [Definir uma configuração do Ciclo de Vida do S3 em um bucket](how-to-set-lifecycle-configuration-intro.md)
+ [Como o Ciclo de Vida do S3 interage com outras configurações de bucket](lifecycle-and-other-bucket-config.md)
+ [Configurar notificações de evento do Ciclo de Vida do S3](lifecycle-configure-notification.md)
+ [Elementos de configuração do ciclo de vida](intro-lifecycle-rules.md)
+ [Como o Amazon S3 lida com conflitos nas configurações do ciclo de vida](lifecycle-conflicts.md)
+ [Exemplos de configurações do Ciclo de Vida do S3](lifecycle-configuration-examples.md)
+ [Solucionar problemas de ciclo de vida do Amazon S3](troubleshoot-lifecycle.md)

# Transição de objetos usando o Amazon S3 Lifecycle
<a name="lifecycle-transition-general-considerations"></a>

É possível adicionar ações de transição a uma configuração do Ciclo de Vida do S3 para solicitar que o Amazon S3 mova objetos para outra classe de armazenamento do Amazon S3. Para obter mais informações sobre classes de armazenamento, consulte [Compreender e gerenciar classes de armazenamento do Amazon S3](storage-class-intro.md). Alguns exemplos de quando você pode usar as configurações do ciclo de vida do S3 dessa maneira incluem:
+ Quando você sabe que os objetos são acessados com pouca frequência, você pode fazer a transição para a classe de armazenamento S3 Standard – IA.
+ Convém arquivar objetos que não precisam de acesso em tempo real às classes de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.

**nota**  
Os objetos criptografados permanecem criptografados durante todo o processo de transição da classe de armazenamento.

## Transições aceitas
<a name="lifecycle-general-considerations-transition-sc"></a>

Em uma configuração do S3 Lifecycle, você pode definir regras para fazer a transição de objetos de uma classe de armazenamento para outra a fim de economizar custos de armazenamento. Quando você desconhece os padrões de acesso dos objetos ou os padrões de acesso mudam com o passar do tempo, é possível fazer a transição para os objetos para a classe de armazenamento S3 Intelligent-Tiering para economizar automaticamente. Para obter informações sobre classes de armazenamento, consulte [Compreender e gerenciar classes de armazenamento do Amazon S3](storage-class-intro.md). 

O Amazon S3 da suporte a um modelo de cachoeira para fazer a transição entre classes de armazenamento, conforme mostrado no diagrama a seguir. 

![\[Gráfico de cachoeira da classe de armazenamento do Amazon S3.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/lifecycle-transitions-v4.png)


### Transições de ciclo de vida com suporte
<a name="supported-lifecycle-transitions"></a>

O Amazon S3 oferece suporte às seguintes transições do ciclo de vida entre as classes de armazenamento usando uma configuração do ciclo de vida do S3. 
+ Da classe de armazenamento S3 Standard para as classes S3 Standard-IA, S3 Intelligent-Tiering, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.
+ Da classe de armazenamento S3 Standard-IA para S3 Intelligent-Tiering, S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.
+ A classe de armazenamento S3 Intelligent-Tiering pode fazer a transição para diferentes classes de armazenamento dependendo do nível de acesso da classe S3 Intelligent-Tiering. As transições a seguir são possíveis para cada nível de acesso.
  + Níveis Frequent Access ou Infrequent Access para as classes de armazenamento S3 One Zone-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.
  + Nível Archive Instant Access para as classes de armazenamento S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.
  + Nível Archive Access para as classes de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.
  + Nível Deep Archive Access para as classes de armazenamento S3 Glacier Deep Archive.
+ Da classe de armazenamento S3 One Zone-IA para S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.
+ Da classe de armazenamento S3 Glacier Instant Retrieval para S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.
+ A classe de armazenamento S3 Glacier Flexible Retrieval para a classe de armazenamento S3 Glacier Deep Archive.

**nota**  
Para buckets com versionamento habilitado ou suspenso, é possível fazer a transição de objetos com status de replicação `Pending`.

## Restrições e considerações relativas a transições
<a name="lifecycle-configuration-constraints"></a>

As transições da classe de armazenamento do ciclo de vida têm as seguintes restrições:

**Por padrão, objetos com menos de 128 KB não farão a transição para nenhuma classe de armazenamento**  
O Amazon S3 aplica um comportamento padrão às configurações de ciclo de vida do S3 que não permite a transferência de objetos com menos de 128 KB para nenhuma classe de armazenamento. Não recomendamos fazer a transição de objetos com menos de 128 KB porque é cobrada uma taxa de solicitação de transição para cada objeto. Isso significa que, para objetos menores, os custos de transição podem exceder as economias obtidas com o armazenamento. Para ter mais informações sobre os custos de solicitação de transição, consulte **Solicitações e recuperações de dados** na guia **Armazenamento e solicitações** da página [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

 Para permitir a transição de objetos menores, é possível adicionar um [filtro de tamanho de objeto](intro-lifecycle-rules.md#intro-lifecycle-rules-filter) às suas regras de transição de ciclo de vida que especifique um tamanho mínimo (`ObjectSizeGreaterThan`) ou máximo (`ObjectSizeLessThan`) personalizado. Para obter mais informações, consulte [Exemplo: permitir que objetos com menos de 128 KB sejam transferidos](lifecycle-configuration-examples.md#lc-small-objects). 

**nota**  
Em setembro de 2024, o Amazon S3 atualizou o comportamento de transição padrão para objetos pequenos, da seguinte forma:  
**Comportamento de transição padrão atualizado**: desde setembro de 2024, o comportamento padrão não permite a transferência de objetos com menos de 128 KB para nenhuma classe de armazenamento.
**Comportamento de transição padrão anterior**: antes de setembro de 2024, o comportamento padrão permitia que objetos com menos de 128 KB fossem transferidos somente para as classes de armazenamento S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive.
As configurações criadas antes de setembro de 2024 retêm o comportamento de transição anterior, a menos que você as modifique. Ou seja, se você criar, editar ou excluir regras, o comportamento de transição padrão da configuração mudará para o comportamento atualizado. Se seu caso de uso exigir, será possível alterar o comportamento de transição padrão para que objetos com menos de 128 KB façam a transição para o S3 Glacier Flexible Retrieval e o S3 Glacier Deep Archive. Para isso, use o cabeçalho `x-amz-transition-default-minimum-object-size` opcional em uma solicitação [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html).

**Os objetos devem ser armazenados pelo menos 30 dias antes de fazer a transição para S3 Standard-IA ou S3 One Zone-IA.**  
Antes de fazer a transição de objetos para S3 Standard-IA ou S3 One Zone-IA, é necessário armazená-los pelo menos 30 dias no Amazon S3. Por exemplo, você não pode criar uma regra de ciclo de vida para fazer a transição de objetos para a classe de armazenamento S3 Standard – IA um dia depois de criá-los. O Amazon S3 não faz essa transição nos primeiros 30 dias porque os objetos mais recentes geralmente são acessados com mais frequência ou excluídos mais cedo do que o adequado para o armazenamento S3 Standard-IA ou S3 One Zone-IA.

Da mesma forma, se você estiver fazendo a transição de objetos não atuais (em buckets com versões), poderá fazer a transição somente de objetos que não são atuais pelo menos 30 dias para armazenamento S3 Standard – IA ou S3 One Zone – IA. Para obter uma lista da duração mínima de armazenamento para todas as classes de armazenamento, consulte [Comparar as classes de armazenamento do Amazon S3](storage-class-intro.md#sc-compare).

**Você incorrerá em cobrança se fizer a transição antes da duração mínima de armazenamento dos objetos**  
Algumas classes de armazenamento têm uma duração mínima de armazenamento de objetos. Se você fizer a transição de objetos dessas classes de armazenamento antes da duração mínima, receberá uma cobrança referente ao restante dessa duração. Para ter mais informações sobre quais classes de armazenamento têm durações mínimas de armazenamento, consulte [Comparar as classes de armazenamento do Amazon S3](storage-class-intro.md#sc-compare).

Não é possível criar uma única regra de ciclo de vida que transfira objetos de uma classe de armazenamento para outra antes do término do período mínimo de duração do armazenamento.

 Por exemplo, o S3 Glacier Instant Retrieval tem uma duração mínima de armazenamento de noventa dias. Não é possível especificar uma regra de ciclo de vida que transfira objetos para o S3 Glacier Instant Retrieval após quatro dias e, em seguida, transfira objetos para o S3 Glacier Deep Archive após vinte dias. Nesse caso, a transição do S3 Glacier Deep Archive deve ocorrer após pelo menos 94 dias.

É possível especificar duas regras para realizar isso, mas é necessário arcar com as cobranças de duração mínima de armazenamento. Para obter mais informações sobre considerações de custo, consulte [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

Para ter mais informações sobre a criação de um ciclo de vida do S3, consulte [Definir uma configuração do Ciclo de Vida do S3 em um bucket](how-to-set-lifecycle-configuration-intro.md).

## Transição para as classes de armazenamento S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive (arquivamento de objetos)
<a name="before-deciding-to-archive-objects"></a>

Usando a configuração do S3 Lifecycle, você pode fazer a transição de objetos para as classes de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive para arquivamento.

Para que você arquive objetos, reveja as seguintes seções para considerações relevantes.

### Considerações gerais
<a name="transition-glacier-general-considerations"></a>

Veja a seguir as considerações gerais que você deve fazer antes de arquivar objetos:
+ Os objetos criptografados permanecem criptografados durante todo o processo de transição da classe de armazenamento.
+ Os objetos armazenados nas classes de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive não estão disponíveis em tempo real.

  Os objetos arquivados são objetos do Amazon S3, mas para acessar um objeto arquivado, primeiro você deve restaurar uma cópia temporária dele. A cópia restaurada do objeto fica disponível somente pelo tempo que você especifica na solicitação de restauração. Depois disso, o Amazon S3 exclui a cópia temporária e o objeto permanece arquivado no S3 Glacier Flexible Retrieval. 

  Você pode restaurar um objeto usando o console do Amazon S3 ou, programaticamente, usando bibliotecas wrapper dos AWS SDKs ou a API REST do Amazon S3 em seu código. Para obter mais informações, consulte [Restaurar um objeto arquivado](restoring-objects.md).
+ Os objetos armazenados na classe de armazenamento S3 Glacier Flexible Retrieval só podem ser transferidos para a classe de armazenamento S3 Glacier Deep Archive.

  Você pode usar uma regra de configuração do S3 Lifecycle somente para converter a classe de armazenamento de um objeto do S3 Glacier Flexible Retrieval para a classe de armazenamento S3 Glacier Deep Archive. Se quiser alterar a classe de armazenamento de um objeto armazenado no S3 Glacier Flexible Retrieval para uma classe de armazenamento diferente do S3 Glacier Deep Archive, use a operação de restauração para fazer uma cópia temporária do objeto primeiro. Depois, use a operação de cópia para substituir o objeto especificando S3 Standard, S3 Intelligent-Tiering, S3 Standard – IA, S3 One Zone – IA ou Reduced Redundancy como a classe de armazenamento.
+ A transição de objetos para a classe de armazenamento S3 Glacier Deep Archive é apenas unidirecional.

  Não é possível usar uma regra de configuração do S3 Lifecycle para converter a classe de armazenamento de um objeto do S3 Glacier Deep Archive para qualquer outra classe de armazenamento. Se você quiser mudar a classe de armazenamento de um objeto arquivado em outra classe de armazenamento, deverá usar a operação de restauração para fazer primeiro uma cópia temporária do objeto. Depois, use a operação de cópia para substituir o objeto especificando S3 Standard, S3 Intelligent-Tiering, S3 Standard – IA, S3 One Zone – IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ou armazenamento de redundância reduzida como a classe de armazenamento.
**nota**  
A aplicação da operação Copy a objetos restaurados não é permitida no console do Amazon S3 em objetos nas classes de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive. Para esse tipo de operação de cópia, use a AWS Command Line Interface(AWS CLI), AWS SDKs ou a API REST.

  Os objetos armazenados nas classes de armazenamento S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive são visíveis e ficam disponíveis somente por meio do Amazon S3. Eles não estão disponíveis por meio do serviço separado do Amazon Glacier.

  Esses são objetos do Amazon S3 e você só pode acessá-los usando o console do Amazon S3 ou a API do Amazon S3. Não é possível acessar os objetos arquivados por meio do console separado do Amazon Glacier ou da API do Amazon Glacier.

### Considerações sobre custos
<a name="glacier-pricing-considerations"></a>

Se você estiver planejando arquivar dados acessados com pouca frequência por um período de meses ou anos, as classes de armazenamento S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive podem reduzir seus custos de armazenamento. No entanto, para garantir que a classe de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive seja apropriada para você, considere o seguinte:
+ **Cobranças extras de armazenamento**: quando você faz a transição de objetos para a classe de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, uma quantidade fixa de armazenamento é adicionada a cada objeto para acomodar metadados para gerenciar o objeto.
  + Para cada objeto arquivado no S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, o Amazon S3 usa 8 KB de armazenamento para o nome do objeto e outros metadados. O Amazon S3 armazena esses metadados de modo que você possa obter uma lista em tempo real de seus objetos arquivados usando a API do Amazon S3. Para obter mais informações, consulte [GET bucket (listar objetos)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html). Você é cobrado conforme as taxas do S3 Standard nesse armazenamento adicional.
  +  Para cada objeto arquivado no S3 Glacier Flexible Retrieval ou no S3 Glacier Deep Archive, o Amazon S3 adiciona 32 KB de armazenamento para indexação e metadados relacionados. Esses dados adicionais são necessários para identificar e recuperar seu objeto. As taxas do S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive são cobradas por esse armazenamento adicional.

  Se você estiver arquivando objetos pequenos, considere esses encargos de armazenamento. Considere também a possibilidade de agregar vários objetos pequenos em um número menor de objetos grandes para reduzir os gastos adicionais.
+ **Número de dias que você pretende manter objetos arquivados**: o S3 Glacier Flexible Retrieval e o S3 Glacier Deep Archive são soluções de arquivamento de longo prazo. O período mínimo de duração de armazenamento é de 90 dias para a classe de armazenamento S3 Glacier Flexible Retrieval e 180 dias para o S3 Glacier Deep Archive. A exclusão de dados arquivados no Amazon Glacier não incorrerá em cobrança se os objetos que você excluir estiverem arquivados por um período maior que o período mínimo de duração do armazenamento. Se você excluir ou substituir um objeto arquivado dentro do período mínimo de duração do arquivamento, o Amazon S3 cobrará uma taxa pro rata pela exclusão antecipada. Para ter informações sobre a taxa de exclusão antecipada, consulte a pergunta “How am I charged for deleting objects from Amazon Glacier that are less than 90 days old?” nas [Perguntas frequentes sobre o Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+ ** Cobranças de solicitações de transição do S3 Glacier Flexible Retrieval e do S3 Glacier Deep Archive**: cada objeto que você transitar para a classe de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive constitui uma solicitação de transição. Há um custo para cada solicitação desse tipo. Se você pretende fazer a transição de um grande número de objetos, considere os custos de solicitação. Se você estiver arquivando uma mistura de objetos que inclui objetos pequenos, especialmente objetos com menos de 128 KB, recomendamos usar o filtro de tamanho do objeto do ciclo de vida para remover objetos pequenos da transição e reduzir os custos da solicitação.
+ ** Cobranças de restauração de dados do S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive**: o S3 Glacier Flexible Retrieval e o S3 Glacier Deep Archive foram projetados para arquivamento de dados de longo prazo que você acessa com pouca frequência. Para ter informações sobre cobranças de restauração de dados, consulte a pergunta “How much does it cost to retrieve data from Amazon Glacier”. nas [Perguntas frequentes sobre o Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). Para ter informações sobre como restaurar dados do Amazon Glacier, consulte [Restaurar um objeto arquivado](restoring-objects.md). 

**nota**  
O Ciclo de Vida do S3 faz a transição de objetos para o S3 Glacier Flexible Retrieval e o S3 Glacier Deep Archive de forma assíncrona. Pode haver um atraso entre a data de transição na regra de configuração do S3 Lifecycle e a data de transição física. Nesse caso, você recebe a cobrança da taxa padrão da classe de armazenamento da qual fez a transição com base na data de transição especificada na regra.

A página de detalhes de produto do Amazon S3 fornece informações sobre preços e exemplos de cálculo para arquivamento de objetos no Amazon S3. Para saber mais, consulte os seguintes tópicos:
+  “How is my storage charge calculated for Amazon S3 objects archived to Amazon Glacier?” nas [Perguntas frequentes sobre o Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+  “"How am I charged for deleting objects from Amazon Glacier that are less than 90 days old?” nas [Perguntas frequentes sobre o Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+  “"How much does it cost to retrieve data from Amazon Glacier?” nas [Perguntas frequentes sobre o Amazon S3](https://aws.amazon.com/s3/faqs/#Amazon_S3_Glacier). 
+  [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/) para custos de armazenamento das diferentes classes de armazenamento. 

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

Os objetos arquivados não podem ser acessados em tempo real. Primeiro inicie uma solicitação de restauração e, em seguida, aguarde até que uma cópia temporária do objeto esteja disponível pelo tempo que você especificar na solicitação. Depois de receber uma cópia temporária do objeto restaurado, a classe de armazenamento do objeto continuará sendo S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive. (Uma solicitação de operação de API [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html) ou [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) retornará o S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive como a classe de armazenamento.) 

**nota**  
Ao restaurar um arquivamento, você paga pelo arquivamento (taxa de S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive) e por uma cópia restaurada temporariamente (taxa de armazenamento de S3 Standard). Para obter mais informações sobre definição de preços, consulte [Definição de preços do Amazon S3](https://aws.amazon.com/s3/pricing/). 

Você pode restaurar uma cópia do objeto programaticamente ou usando o console do Amazon S3. O Amazon S3 só processa uma solicitação de restauração por vez por objeto. Para obter mais informações, consulte [Restaurar um objeto arquivado](restoring-objects.md).

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

É possível adicionar ações de transição a uma configuração do Ciclo de Vida do S3 para solicitar que o Amazon S3 exclua objetos no final de sua vida útil. Quando um objeto atinge o fim de seu ciclo de vida, com base na respectiva configuração de ciclo de vida, o Amazon S3 realiza uma ação `Expiration` de acordo com o estado do [Versionamento do S3](Versioning.md) no qual o bucket está:
+ **Bucket sem versionamento**: o Amazon S3 coloca o objeto em uma fila para remoção e o remove de maneira assíncrona, eliminando-o permanentemente. 
+ **Bucket com versionamento habilitado**: se a versão atual do objeto não for um marcador de exclusão, o Amazon S3 adicionará um com um ID exclusivo de versão. Isso torna a versão atual desatualizada, e o marcador de exclusão se torna a versão atual. 
+ **Bucket com versionamento suspenso**: o Amazon S3 cria um marcador de exclusão com ID de versão nulo. Esse marcador de exclusão substitui qualquer versão de objeto por um ID de versão nulo na hierarquia de versões, que exclui o objeto. 

Para um bucket com versionamento (ou seja, versionamento habilitado ou suspenso), há várias considerações que orientam como o Amazon S3 trata a ação `Expiration`. Para buckets com versionamento habilitado ou suspenso, o seguinte se aplica:
+ A expiração do objeto se aplica somente à versão atual de um objeto (não afeta versões desatualizadas de objetos).
+ O Amazon S3 não realizará ações se houver uma ou mais versões de objeto e se o marcador de exclusão estiver na versão atual.
+ Se a versão atual do objeto for a única versão do objeto e também houver um marcador de exclusão (também chamado de *marcador de exclusão de objeto expirado*, onde todas as versões do objeto são excluídas e você tem somente um marcador de exclusão restante), o Amazon S3 removerá o marcador de exclusão de objeto expirado. Você também pode usar a ação `Expiration` para instruir o Amazon S3 a remover os marcadores de exclusão do objeto expirado. Por exemplo, consulte [Remover marcadores de exclusão de objetos expirados em um bucket com versionamento habilitado](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7).
+ Você pode usar o elemento de ação `NoncurrentVersionExpiration` para instruir o Amazon S3 a excluir permanentemente versões de objetos desatualizadas. Esses objetos excluídos não podem ser recuperados. Esse prazo de validade pode se basear em determinado número de dias desde o momento em que os objetos se tornam desatualizados. Além do número de dias, você também pode fornecer um número máximo de versões desatualizadas que devem ser retidas (entre 1 e 100). Esse valor especifica quantas versões desatualizadas mais recentes devem existir antes que o Amazon S3 possa executar a ação associada em uma determinada versão. Para especificar o número máximo de versões não atuais, também é necessário fornecer um elemento `Filter`. Se não especificar um elemento `Filter`, o Amazon S3 gerará um erro `InvalidRequest` quando você fornecer um número máximo de versões não atuais. Para obter mais informações sobre como usar o elemento de ação `NoncurrentVersionExpiration`, consulte [Elementos para descrever ações de ciclo de vida](intro-lifecycle-rules.md#intro-lifecycle-rules-actions).
+ O Amazon S3 não realiza nenhuma ação em versões não atuais de objetos que tenham a configuração de Bloqueio de Objetos do S3 aplicada.
+ Em relação a objetos com o status de replicação `Pending`, o Amazon S3 não realiza nenhuma ação em versões atuais ou não atuais dos objetos.

Para obter mais informações, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md).

**Importante**  
Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:  
A exclusão permanente tem precedência sobre a transição.
A transição tem precedência sobre a criação de [marcadores de exclusão](DeleteMarker.md).
Quando um objeto é elegível para transição às classes S3 Glacier Flexible Retrieval e S3 Standard-IA (ou S3 One Zone-IA), o Amazon S3 escolhe a transição para a classe S3 Glacier Flexible Retrieval.
 Para obter exemplos, consulte [Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

**Objetos existentes e novos**  
Quando você adiciona uma configuração do ciclo de vida a um bucket, as regras de configuração se aplicam aos objetos existentes e aos objetos que serão adicionados no futuro. Por exemplo, se você adicionar uma regra de configuração da funcionalidade Ciclo de Vida hoje com uma ação de expiração que faz com que os objetos com um prefixo específico expirem 30 dias após sua criação, o Amazon S3 organizará para exclusão todos os objetos existentes com o prefixo especificado e com mais de 30 dias.

**Importante**  
Você não pode usar uma política de bucket para evitar exclusões ou transições por meio de uma regra de ciclo de vida do S3. Por exemplo, mesmo que a política de bucket negue todas as ações para todas as entidades principais, a configuração do ciclo de vida do S3 ainda funcionará normalmente.

## Como descobrir quando os objetos expiram
<a name="lifecycle-expire-when"></a>

Para descobrir quando a versão atual de um objeto está programada para expirar, use as operações de API [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html) ou [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html). Essas operações de API exibem os cabeçalhos de resposta que fornecem a data e a hora em que não é mais possível armazenar a versão atual do objeto em cache. 

**nota**  
Pode haver um atraso entre a data de expiração e a data em que o Amazon S3 remove um objeto. Você não será cobrado pela validade ou tempo de armazenamento associado a um objeto que expirou. 
Antes de atualizar, desabilitar ou excluir regras de ciclo de vida, use as operações de API `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) e [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)) ou [Catalogar e analisar seus dados com o Inventário S3](storage-inventory.md) para verificar se o Amazon S3 fez a transição e descontinuou os objetos elegíveis com base em seus casos de uso.

## Cobrança da duração mínima de armazenamento
<a name="lifecycle-expire-minimum-storage"></a>

Se você criar uma regra de expiração do S3 Lifecycle que fará com que os objetos que estiveram no armazenamento S3 Standard – IA ou S3 One Zone – IA por menos de 30 dias expirem, você será cobrado por 30 dias. Se criar uma regra de validade do Lifecycle que resulte na expiração de objetos armazenados na classe S3 Glacier Flexible Retrieval por pelo menos 90 dias, você será cobrado por 90 dias. Se você criar uma regra de expiração do ciclo de vida que faça com que os objetos que estiveram no armazenamento do S3 Glacier Deep Archive por menos de 180 dias expirem, será cobrado por 180 dias.

Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

# Definir uma configuração do Ciclo de Vida do S3 em um bucket
<a name="how-to-set-lifecycle-configuration-intro"></a>

É possível definir uma configuração do Ciclo de Vida do Amazon S3 em um bucket usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), os SDKs da AWS ou a API REST do Amazon S3. Para obter informações sobre a configuração do S3 Lifecycle, consulte [Gerenciar o ciclo de vida dos objetos](object-lifecycle-mgmt.md).

**nota**  
Para visualizar ou editar a configuração do ciclo de vida de um bucket de diretório, use a AWS CLI, os AWS SDKs ou a API REST do Amazon S3. Para obter mais informações, consulte [Trabalhar com o S3 Lifecycle para buckets de diretório](directory-buckets-objects-lifecycle.md).

Na configuração do Ciclo de Vida do S3, você usa *regras de ciclo de vida* para definir ações que você deseja que o Amazon S3 realize durante a vida útil de um objeto. Por exemplo, é possível definir regras para fazer a transição de objetos a outra classe de armazenamento, arquivá-los ou expirá-los (excluí-los) após um período especificado.

## Considerações sobre o Ciclo de Vida do S3
<a name="lifecycle-considerations"></a>

Antes de definir uma configuração de ciclo de vida, observe o seguinte:

**Atraso de propagação da configuração do ciclo de vida**  
Quando você adiciona uma configuração do S3 Lifecycle a um bucket, costuma haver algum atraso antes que uma configuração nova ou atualizada do ciclo de vida seja totalmente propagada para todos os sistemas do Amazon S3. Considere um atraso de alguns minutos antes que a configuração entre totalmente em vigor. Esse atraso também pode ocorrer quando você exclui uma configuração do S3 Lifecycle.

**Atraso na transição ou na expiração**  
Há um atraso entre quando uma regra do ciclo de vida é cumprida e quando a ação para a regra é concluída. Por exemplo, suponha que um conjunto de objetos tenha expirado por uma regra de ciclo de vida em 1.º de janeiro. Mesmo que a regra de expiração tenha sido cumprida em 1º de janeiro, o Amazon S3 pode não excluir esses objetos até dias ou até semanas depois. Esse atraso ocorre porque o ciclo de vida do S3 enfileira objetos para transições ou expirações de forma assíncrona. No entanto, as alterações no faturamento geralmente são aplicadas quando a regra do ciclo de vida é cumprida, mesmo que a ação não seja concluída. Consulte mais informações em [Alterações no faturamento](#lifecycle-billing). Para monitorar o efeito das atualizações feitas pelas regras de ciclo de vida ativas, consulte [Como monitorar as ações realizadas pelas minhas regras de ciclo de vida?](troubleshoot-lifecycle.md#troubleshoot-lifecycle-2)

**Atualizar, desabilitar ou excluir regras de ciclo de vida**  
Quando você desabilita ou exclui regras de ciclo de vida, o Amazon S3 para de programar a exclusão ou transição de novos objetos depois de um pequeno atraso. Todos os objetos que já foram agendados não são agendados e não são excluídos ou transicionados.

**nota**  
Antes de atualizar, desabilitar ou excluir regras de ciclo de vida, use as operações de API `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) e [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)) ou [Catalogar e analisar seus dados com o Inventário S3](storage-inventory.md) para verificar se o Amazon S3 fez a transição e descontinuou os objetos elegíveis com base em seus casos de uso. Se você estiver enfrentando problemas com a atualização, a desabilitação ou a exclusão de regras de ciclo de vida, consulte [Solucionar problemas de ciclo de vida do Amazon S3](troubleshoot-lifecycle.md).

**Objetos existentes e novos**  
Quando você adiciona uma configuração do ciclo de vida a um bucket, as regras de configuração se aplicam aos objetos existentes e aos objetos que serão adicionados no futuro. Por exemplo, se você adicionar uma regra de configuração da funcionalidade Ciclo de Vida hoje com uma ação de expiração que faz com que os objetos com um prefixo específico expirem 30 dias após sua criação, o Amazon S3 organizará para exclusão todos os objetos existentes com o prefixo especificado e com mais de 30 dias.

**Monitorar o efeito de regras de ciclo de vida**  
Para monitorar o efeito das atualizações feitas pelas regras de ciclo de vida ativas, consulte [Como monitorar as ações realizadas pelas minhas regras de ciclo de vida?](troubleshoot-lifecycle.md#troubleshoot-lifecycle-2)

**Alterações no faturamento**  
Pode haver um atraso entre o momento em que as regras de configuração da funcionalidade Ciclo de Vida são satisfeitas e o momento em que a ação, ativada pela satisfação da regra, é tomada. No entanto, as alterações na cobrança acontecem assim que a regra de configuração da funcionalidade Ciclo de Vida é satisfeita, mesmo que a ação ainda não tenha sido tomada.

Por exemplo, não haverá cobrança pelo armazenamento após o tempo de expiração do objeto, mesmo que o objeto não seja excluído imediatamente. Da mesma maneira, assim que o tempo de transição do objeto terminar, você receberá cobrança segundo as taxas de armazenamento da classe S3 Glacier Flexible Retrieval, mesmo que a transição do objeto para a classe de armazenamento S3 Glacier Flexible Retrieval não seja feita imediatamente. 

No entanto, as transições do ciclo de vida para a classe de armazenamento S3 Intelligent-Tiering são a exceção. As alterações no faturamento só acontecerão depois da transição do objeto para a classe de armazenamento S3 Intelligent-Tiering. 

**Regras múltiplas ou conflitantes**  
Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:
+ A exclusão permanente tem precedência sobre a transição.
+ A transição tem precedência sobre a criação de [marcadores de exclusão](DeleteMarker.md).
+ Quando um objeto é elegível para transição às classes S3 Glacier Flexible Retrieval e S3 Standard-IA (ou S3 One Zone-IA), o Amazon S3 escolhe a transição para a classe S3 Glacier Flexible Retrieval.

 Para obter exemplos, consulte [Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Como definir uma configuração do Ciclo de Vida do S3
<a name="how-to-set-lifecycle-configuration"></a>

É possível definir uma configuração da funcionalidade Ciclo de Vida do Amazon S3 em um bucket de uso geral usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), os AWS SDKs ou a API REST do Amazon S3. 

Consulte informações sobre modelos e exemplos do AWS CloudFormation em [Trabalhar com modelos do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) e [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) no *Guia do usuário do CloudFormation*.

### Usar o console do S3
<a name="create-lifecycle"></a>

É possível definir regras de ciclo de vida para todos os objetos ou para um subconjunto de objetos em um bucket usando um prefixo compartilhado (nomes de objetos que começam com uma string comum) ou uma tag. Na regra de ciclo de vida, é possível definir ações específicas para versões atuais e não atuais do objeto. Para saber mais, consulte:
+ [Gerenciar o ciclo de vida dos objetos](object-lifecycle-mgmt.md)
+ [Reter várias versões de objetos com o Versionamento do S3](Versioning.md)

**Como criar uma regra de ciclo de vida**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista de buckets, escolha o nome do bucket para o qual você deseja criar uma regra de ciclo de vida.

1. Escolha a guia **Management (Gerenciamento)** e escolha **Create lifecycle rule (Criar regra de ciclo de vida)**.

1. Em **Lifecycle rule name (Nome da regra do ciclo de vida)**, insira um nome para sua regra. 

   O nome deve ser exclusivo dentro do bucket. 

1. Escolha o escopo da regra do ciclo de vida: 
   + Para aplicar essa regra de ciclo de vida a *todos os objetos com um prefixo ou uma tag específica*, escolha **Limitar o escopo a prefixos ou tags específicos**. 
     + Para limitar o escopo por prefixo, em **Prefix (Prefixo)**, insira o prefixo. 
     + Para limitar o escopo por tag, escolha **Add tag (Adicionar tag)** e insira a chave e o valor da tag.

     Para obter mais informações sobre prefixos de nome de objeto, consulte [Nomear objetos do Amazon S3](object-keys.md). Para obter mais informações sobre tags de objeto, consulte [Categorizar objetos usando tags](object-tagging.md). 
   + Para aplicar essa regra de ciclo de vida a *todos os objetos no bucket*, escolha **Esta regra se aplica a *todos* os objetos no bucket** e **Eu reconheço que esta regra se aplica a todos os objetos no bucket**.

1. Para filtrar uma regra por tamanho de objeto, selecione **Especificar o tamanho mínimo do objeto**, **Especificar o tamanho máximo do objeto** ou as duas opções.
   + Ao especificar um valor para **Tamanho mínimo do objeto** ou **Tamanho máximo do objeto**, o valor deverá ser maior que 0 byte e no máximo 50 TB. É possível especificar esse valor em bytes, KB, MB ou GB.
   + Ao especificar ambos os valores, o tamanho máximo do objeto deverá ser maior que o tamanho mínimo do objeto.
**nota**  
Os filtros **Tamanho mínimo do objeto** e **Tamanho máximo do objeto** excluem os valores especificados. Por exemplo, se você definir um filtro para expirar objetos que tenham um **Tamanho mínimo do objeto** de 128 KB, os objetos com exatamente 128 KB não expirarão. Em vez disso, a regra se aplica somente a objetos com tamanho maior que 128 KB.

1. Em **Lifecycle rule actions (Ações de regra do ciclo de vida)**, escolha as ações que você deseja que sua regra de ciclo de vida execute:
   + Transição de versões *atuais* de objetos entre classes de armazenamento
   + Transição de versões *anteriores* de objetos entre classes de armazenamento
   + Expirar as versões *atuais* dos objetos
**nota**  
Para buckets que não têm o [versionamento do S3](Versioning.md) habilitado, a expiração das versões atuais faz com que o Amazon S3 exclua permanentemente os objetos. Para obter mais informações, consulte [Ações de ciclo de vida e estado de versionamento do bucket](intro-lifecycle-rules.md#lifecycle-actions-bucket-versioning-state).
   + Excluir permanentemente versões *anteriores* de objetos
   + Excluir marcadores de exclusão expirados ou multipart uploads incompletos 

   Dependendo das ações que você escolher, diferentes opções serão exibidas.

1. Para fazer a transição de versões *atuais* de objetos entre classes de armazenamento, em **Transição de versões atuais de objetos entre classes de armazenamento**, faça o seguinte:

   1. Em **Transições de classe de armazenamento**, escolha a classe de armazenamento para a qual fazer a transição. Consulte uma lista de possíveis transições em [Transições de ciclo de vida com suporte](lifecycle-transition-general-considerations.md#supported-lifecycle-transitions). É possível escolher entre as seguintes classes de armazenamento:
      + S3 Standard – IA
      + S3 Intelligent-Tiering
      + S3 One Zone-IA
      + S3 Glacier Instant Retrieval
      + S3 Glacier Flexible Retrieval
      + S3 Glacier Deep Archive

   1. Em **Days after object creation (Dias após a criação do objeto)**, insira o número de dias após a criação para fazer a transição do objeto.

   Para obter mais informações sobre classes de armazenamento, consulte [Compreender e gerenciar classes de armazenamento do Amazon S3](storage-class-intro.md). É possível definir transições para a versão atual ou as versões anteriores do objeto, ou para ambas. O versionamento permite que você mantenha várias versões de um objeto em um bucket. Para obter mais informações sobre versionamento, consulte [Uso do console do S3](manage-versioning-examples.md#enable-versioning).
**Importante**  
Quando você escolhe a classe de armazenamento S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ou Glacier Deep Archive, os objetos permanecem no Amazon S3. Não será possível acessá-los diretamente por meio do serviço separado do Amazon Glacier. Para obter mais informações, consulte [Transição de objetos usando o Amazon S3 Lifecycle](lifecycle-transition-general-considerations.md). 

1. Para fazer a transição de versões *não atuais* de objetos entre classes de armazenamento, em **Transição de versões não atuais de objetos entre classes de armazenamento**, faça o seguinte:

   1. Em **Transições de classe de armazenamento**, escolha a classe de armazenamento para a qual fazer a transição. Consulte uma lista de possíveis transições em [Transições de ciclo de vida com suporte](lifecycle-transition-general-considerations.md#supported-lifecycle-transitions). É possível escolher entre as seguintes classes de armazenamento:
      + S3 Standard – IA
      + S3 Intelligent-Tiering
      + S3 One Zone-IA
      + S3 Glacier Instant Retrieval
      + S3 Glacier Flexible Retrieval
      + S3 Glacier Deep Archive

   1. Em **Dias após o objeto ficar desatualizado**, insira o número de dias após a criação para fazer a transição do objeto.

1. Para expirar as versões *atuais* dos objetos, em **Expire current versions of objects** (Expirar versões atuais de objetos), em **Number of days after object creation** (Número de dias após a criação do objeto), insira o número de dias.
**Importante**  
Em um bucket sem versionamento, a ação de expiração faz com que o Amazon S3 remova permanentemente o objeto. Para obter mais informações sobre ações de ciclo de vida, consulte [Elementos para descrever ações de ciclo de vida](intro-lifecycle-rules.md#intro-lifecycle-rules-actions).

1. Para excluir permanentemente versões anteriores de objetos, em **Permanently delete previous versions of objects** (Excluir permanentemente versões desatualizadas de objetos), em **Days after objects become noncurrent** (Dias após os objetos ficarem desatualizados), insira o número de dias. Opcionalmente, você pode especificar o número de versões mais recentes a serem retidas inserindo um valor em **Number of newer versions to retain** (Número de versões mais novas a serem mantidas).

1. Em **Delete expired delete markers or incomplete multipart uploads (Excluir marcadores de exclusão expirados ou multipart uploads incompletos)**, escolha **Delete expired object delete markers (Excluir marcadores de exclusão de objetos expirados)** e **Delete incomplete multipart uploads (Excluir multipart uploads incompletos)**. Depois, insira o número de dias após o início do multipart upload que você deseja encerrar e limpar multipart uploads incompletos.

   Para obter mais informações sobre multipart uploads, consulte [Carregar e copiar objetos usando upload fracionado no Amazon S3](mpuoverview.md).

1. Selecione **Criar regra**.

   Se a regra não contiver erros, o Amazon S3 a habilitará e você poderá vê-la na guia **Management (Gerenciamento)** em **Lifecycle rules (Regras de ciclo de vida)**.

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

Use os comandos da AWS CLI a seguir para gerenciar as configurações do S3 Lifecycle:
+ `put-bucket-lifecycle-configuration`
+ `get-bucket-lifecycle-configuration`
+ `delete-bucket-lifecycle`

Consulte instruções sobre como configurar a AWS CLI em [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) na *Referência de API do Amazon S3*.

A configuração do ciclo de vida do Amazon S3 é um arquivo XML. Porém, ao usar a AWS CLI, você não pode especificar o formado XML. Em vez disso, você deve especificar o formato JSON. Veja a seguir exemplos de configurações de ciclo de vida em XML e as configurações JSON equivalentes que podem ser especificadas em um comando da AWS CLI.

Considere o seguinte exemplo de configuração do S3 Lifecycle.

**Example Exemplo 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 Exemplo 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
            }
        }
    ]
}
```

Teste o comando `put-bucket-lifecycle-configuration` da seguinte forma.

**Como testar a configuração**

1. Salve a configuração de ciclo de vida JSON em um arquivo (por exemplo, *`lifecycle.json`*). 

1. Execute o comando da AWS CLI a seguir para definir a configuração do ciclo de vida no bucket. Substitua `user input placeholders` por suas próprias informações.

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

1. Para verificar, recupere a configuração do S3 Lifecycle usando o comando `get-bucket-lifecycle-configuration` da AWS CLI da seguinte maneira:

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

1. Para excluir a configuração do S3 Lifecycle, use o comando `delete-bucket-lifecycle` da AWS CLI da seguinte maneira:

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

### Usar SDKs da AWS
<a name="manage-lifecycle-using-sdk"></a>

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

Você pode usar o AWS SDK para Java para gerenciar a configuração do ciclo de vida do S3 de um bucket. Para obter mais informações sobre o gerenciamento da configuração do ciclo de vida do S3, consulte [Gerenciar o ciclo de vida dos objetos](object-lifecycle-mgmt.md).

**nota**  
Quando você adiciona uma configuração do Ciclo de Vida do S3 a um bucket, o Amazon S3 substitui a configuração do Ciclo de Vida atual do bucket, se houver. Para atualizar uma configuração, recupere a configuração, faça as alterações desejadas e adicione a configuração revisada ao bucket.

Para gerenciar a configuração do ciclo de vida usando o AWS SDK para Java, você pode:
+ Adicionar uma configuração de ciclo de vida a um bucket.
+ Recuperar a configuração do ciclo de vida e a atualizá-la adicionando outra regra.
+ Adicionar a configuração do ciclo de vida modificada ao bucket. O Amazon S3 substitui a configuração existente.
+ Recuperar a configuração novamente e verificar se ela tem o número certo de regras imprimindo o número de regras.
+ Excluir a configuração do ciclo de vida e verificar se ela foi excluída ao tentar recuperá-la novamente.

Para obter exemplos de como definir a configuração do ciclo de vida em um bucket com o 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) na *Referência de API do Amazon S3*.

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

Use o AWS SDK para .NET para gerenciar a configuração do S3 Lifecycle em um bucket. Para obter mais informações sobre o gerenciamento da configuração do ciclo de vida, consulte [Gerenciar o ciclo de vida dos objetos](object-lifecycle-mgmt.md). 

**nota**  
Quando você adiciona uma configuração do ciclo de vida, o Amazon S3 substitui a configuração existente no bucket especificado. Para atualizar uma configuração, recupere a configuração do ciclo de vida, faça as alterações e, depois, adicione a configuração revisada ao bucket.

O exemplo a seguir mostra como usar o AWS SDK para .NET para adicionar, atualizar e excluir uma configuração do ciclo de vida de um bucket. O exemplo de código faz o seguinte:
+ Adiciona a configuração do ciclo de vida a um bucket. 
+ Recupera a configuração do ciclo de vida e a atualiza adicionando outra regra. 
+ Adiciona a configuração do ciclo de vida modificada ao bucket. O Amazon S3 substitui a configuração do ciclo de vida existente.
+ Recupera a configuração novamente e a verifica imprimindo o número de regras na configuração.
+ Exclui a configuração do Lifecycle e verifica a exclusão.

Consulte informações sobre como configurar e executar exemplos de código, em [Getting Started with the AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config.html) no *Guia do desenvolvedor do AWS SDK para .NET*. 

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

É possível usar o AWS SDK para Ruby para gerenciar uma configuração do Ciclo de Vida do S3 em um bucket usando a classe [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 obter mais informações sobre o gerenciamento da configuração do ciclo de vida do S3, consulte [Gerenciar o ciclo de vida dos objetos](object-lifecycle-mgmt.md). 

------

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

Os tópicos a seguir na *Referência da API do Amazon Simple Storage Service* descrevem as operações da API REST relacionada à configuração do Ciclo de Vida do S3: 
+ [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)

## Solução de problemas de ciclo de vida do S3
<a name="lifecycle-troubleshoot"></a>

Consulte problemas comuns que podem ocorrer ao trabalhar com o ciclo de vida do S3 em [Solucionar problemas de ciclo de vida do Amazon S3](troubleshoot-lifecycle.md).

# Como o Ciclo de Vida do S3 interage com outras configurações de bucket
<a name="lifecycle-and-other-bucket-config"></a>

Além de configurações do S3 Lifecycle, você pode associar outras configurações a seu bucket. Esta seção explica como a configuração do S3 Lifecycle está relacionada a outras configurações de bucket.

## Ciclo de Vida do S3 e Versionamento do S3
<a name="lifecycle-versioning-support-intro"></a>

Você pode adicionar configurações de ciclo de vida do S3 a buckets com e sem versionamento. Para obter mais informações, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md). 

Um bucket com versionamento habilitado mantém uma versão atual do objeto e versões desatualizadas do objeto (se disponíveis). Você pode definir regras separadas de ciclo de vida para versões atuais e não atuais do objeto.

Para obter mais informações, consulte [Elementos de configuração do ciclo de vida](intro-lifecycle-rules.md).

**Importante**  
Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:  
A exclusão permanente tem precedência sobre a transição.
A transição tem precedência sobre a criação de [marcadores de exclusão](DeleteMarker.md).
Quando um objeto está qualificado para uma transição S3 Glacier Flexible Retrieval e S3 Standard – IA (ou S3 One Zone – IA), o Amazon S3 escolhe a transição do S3 Glacier Flexible Retrieval.
 Para obter exemplos, consulte [Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Configuração do Ciclo de Vida do S3 em buckets com MFA habilitada
<a name="lifecycle-general-considerations-mfa-enabled-bucket"></a>

Não é possível usar a configuração do ciclo de vida do S3 em buckets com autenticação multifator configurada para exclusão da MFA. Para obter mais informações, consulte [Configurando a exclusão de MFA](MultiFactorAuthenticationDelete.md).

## Ciclo de Vida do S3 e registro em log
<a name="lifecycle-general-considerations-logging"></a>

As ações de Ciclo de Vida do Amazon S3 não são capturadas pelo registro em log no nível do objeto do AWS CloudTrail. O CloudTrail captura solicitações de API feitas para endpoints externos do Amazon S3, enquanto as ações do Ciclo de Vida do S3 são realizadas usando endpoints internos do Amazon S3. 

É possível habilitar logs de acesso ao servidor do Amazon S3 em um bucket do S3 para capturar ações relacionadas ao Ciclo de Vida do S3, como transições de objetos para outra classe de armazenamento e expirações de objetos que resultam em exclusão permanente ou lógica. Para obter mais informações, consulte [Registrar em log as solicitações com registro em log de acesso ao servidor](ServerLogs.md).

Se o registro em logs estiver ativado em seu bucket, os logs de acesso do servidor do Amazon S3 relatarão os resultados das seguintes operações.


| Log de operação | Descrição | 
| --- | --- | 
|  `S3.EXPIRE.OBJECT`  |  O Amazon S3 exclui permanentemente o objeto devido à ação `Expiration` do ciclo de vida.  | 
|  `S3.CREATE.DELETEMARKER`  |  O Amazon S3 exclui logicamente a versão atual adicionando o marcador de exclusão em um bucket com versionamento habilitado.  | 
|  `S3.TRANSITION_SIA.OBJECT`  |  O Amazon S3 faz a transição do objeto para a classe de armazenamento S3 Standard – IA.  | 
|  `S3.TRANSITION_ZIA.OBJECT`  |  O Amazon S3 faz a transição do objeto para a classe de armazenamento S3 One Zone – IA.  | 
|  `S3.TRANSITION_INT.OBJECT`  |  O Amazon S3 faz a transição do objeto para a classe de armazenamento S3 Intelligent-Tiering.  | 
|  `S3.TRANSITION_GIR.OBJECT`  |  O Amazon S3 inicia a transição do objeto para a classe de armazenamento S3 Glacier Instant Retrieval.  | 
|  `S3.TRANSITION.OBJECT`  |  O Amazon S3 inicia a transição do objeto para a classe de armazenamento S3 Glacier Flexible Retrieval.  | 
|  `S3.TRANSITION_GDA.OBJECT`  |  O Amazon S3 inicia a transição do objeto para a classe de armazenamento S3 Glacier Deep Archive.  | 
|  `S3.DELETE.UPLOAD`  |  O Amazon S3 interrompe o carregamento fracionado incompleto.  | 

**nota**  
Os registros do log de acesso ao servidor do Amazon S3 são entregues com base no melhor esforço e não podem ser usados para uma contabilização completa de todas as solicitações do Amazon S3. 

# Configurar notificações de evento do Ciclo de Vida do S3
<a name="lifecycle-configure-notification"></a>

Para receber uma notificação quando o Amazon S3 exclui um objeto ou o transiciona para outra classe de armazenamento do Amazon S3 ao seguir uma regra do Ciclo de Vida do S3, é possível configurar uma notificação de eventos do Amazon S3.

É possível receber notificações para os seguintes eventos do Ciclo de Vida do S3:
+ **Eventos de transição**: ao usar o tipo de evento `s3:LifecycleTransition`, você poderá receber uma notificação quando um objeto for transferido para outra classe de armazenamento do Amazon S3 por uma configuração do Ciclo de Vida do S3.
+ **Eventos de expiração (exclusão)**: ao usar os tipos de evento `LifecycleExpiration`, você poderá receber notificações sempre que o Amazon S3 excluir um objeto com base na configuração do Ciclo de Vida do S3. 

  Há dois tipos de evento de expiração: 
  + O tipo de evento `s3:LifecycleExpiration:Delete` notifica você quando um objeto em um bucket sem versionamento é excluído. `s3:LifecycleExpiration:Delete` também notifica quando uma versão de objeto é excluída permanentemente por uma configuração do Ciclo de Vida do S3.
  +  O tipo de evento `s3:LifecycleExpiration:DeleteMarkerCreated` notifica você quando o Ciclo de Vida do S3 cria um marcador de exclusão depois que uma versão atual de um objeto no bucket com versionamento é excluída. O Ciclo de vida do S3 define o horário de criação do marcador de exclusão como 00:00 UTC (meia-noite) do dia atual. Esse horário de criação pode ser diferente do horário do evento na notificação `s3:LifecycleExpiration:DeleteMarkerCreated` que o S3 envia. Para obter mais informações, consulte [Excluir versões de objetos de um bucket com versionamento habilitado](DeletingObjectVersions.md).

O Amazon S3 pode publicar notificações de eventos em um tópico do Amazon Simple Notification Service (Amazon SNS), em uma fila do Amazon Simple Queue Service (Amazon SQS) ou em uma função do AWS Lambda. Para obter mais informações, consulte [Notificações de eventos do Amazon S3](EventNotifications.md).

Consulte instruções sobre como configurar Notificações de Eventos do Amazon S3 em [Usar o Amazon SQS, o Amazon SNS e o AWS Lambda](how-to-enable-disable-notification-intro.md).

Veja a seguir um exemplo de mensagem que o Amazon S3 envia para publicar um evento `s3:LifecycleExpiration:Delete`. Para obter mais informações, consulte [Estrutura de mensagens 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. }
```

As mensagens que o Amazon S3 envia para publicar um evento `s3:LifecycleTransition` também incluem as seguintes informações:

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

# Elementos de configuração do ciclo de vida
<a name="intro-lifecycle-rules"></a>

Uma configuração do Ciclo de Vida do S3 consiste em regras de ciclo de vida que incluem vários elementos que descrevem as ações que o Amazon S3 realiza durante a vida útil dos objetos. Cada bucket do S3 pode ter uma configuração de ciclo de vida atribuída a ele, que pode conter até mil regras. Você especifica uma configuração do Ciclo de Vida do Amazon S3 como XML, que é composta por uma ou mais regras do Ciclo de Vida, em que cada regra consiste em um ou mais elementos.

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

Cada regra consiste no seguinte:
+ Metadados de regra que incluem um ID de regra e um status que indica se a regra está habilitada ou desabilitada. Se uma regra estiver desativada, o Amazon S3 não executará as ações especificadas nela.
+ Um filtro que identifica os objetos aos quais a regra se aplica. Você pode especificar um filtro usando o tamanho do objeto, o prefixo de chave do objeto, uma ou mais tags de objeto ou uma combinação de filtros.
+ Uma ou mais ações de transição ou expiração com uma data ou um período no ciclo de vida do objeto quando você deseja que o Amazon S3 realize a ação especificada. 

**Topics**
+ [Elemento ID](#intro-lifecycle-rule-id)
+ [Elemento Status](#intro-lifecycle-rule-status)
+ [Elemento Filter](#intro-lifecycle-rules-filter)
+ [Elementos para descrever ações de ciclo de vida](#intro-lifecycle-rules-actions)
+ [Como adicionar filtros a regras de ciclo de vida](intro-lifecycle-filters.md)

As seções a seguir descrevem os elementos XML em uma configuração de ciclo de vida do S3. Para obter configurações de exemplo, consulte [Exemplos de configurações do Ciclo de Vida do S3](lifecycle-configuration-examples.md).

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

As configurações do ciclo de vida são definidas em nível de bucket, e cada bucket tem sua própria configuração de ciclo de vida. Uma configuração do Ciclo de Vida do S3 pode ter até mil regras por bucket. Este limite não é ajustável. O elemento `<ID>` identifica exclusivamente uma regra na configuração do ciclo de vida de um bucket. O tamanho do ID está limitado a 255 caracteres.

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

O valor do elemento `<Status>` pode ser `Enabled` ou `Disabled`. Se uma regra estiver desativada, o Amazon S3 não executará as ações definidas nela.

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

Uma regra do Ciclo de Vida do S3 pode ser aplicada a todos os objetos ou a um subconjunto de objetos em um bucket com base no elemento `<Filter>` especificado na regra. 

É possível filtrar objetos por prefixo das chaves, por tag de objeto ou por uma combinação dos dois (neste último caso, o Amazon S3 usa uma operação `AND` lógica para combinar os filtros). Consulte exemplos e mais informações sobre filtros em [Como adicionar filtros a regras de ciclo de vida](intro-lifecycle-filters.md).
+ **Especificação de um filtro usando prefixos de chave**: este exemplo mostra uma regra do S3 Lifecycle que se aplica a um subconjunto de objetos com base no prefixo de nome de chave (`logs/`). Por exemplo, a regra de ciclo de vida se aplica aos objetos `logs/mylog.txt`, `logs/temp1.txt` e `logs/test.txt`. A regra não se aplica ao objeto `example.jpg`.

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

  Caso queira aplicar uma ação de ciclo de vida a um subconjunto de objetos com base em prefixos de nome de chave diferentes, especifique regras separadas. Em cada regra, especifique um filtro com base em prefixo. Por exemplo, para descrever uma ação de ciclo de vida para objetos com prefixos de chave `projectA/` e `projectB/`, especifique duas regras da seguinte forma: 

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

  Para obter mais informações sobre chaves de objeto, consulte [Nomear objetos do Amazon S3](object-keys.md). 
+ **Especificação de um filtro com base em tags de objeto**: no exemplo a seguir, a regra de ciclo de vida especifica um filtro com base em uma tag (`key`) e valor (`value`). A regra aplica-se somente a um subconjunto de objetos com a tag específica.

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

  Você pode especificar um filtro com base em várias tags. Você deve encapsular as tags no elemento `<And>`, como mostrado no exemplo a seguir. A regra instrui o Amazon S3 a executar ações de ciclo de vida em objetos com duas tags (com a chave e o valor específicos da tag).

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

  A regra de ciclo de vida se aplica a objetos que têm ambas as tags especificadas. O Amazon S3 realiza uma operação lógica `AND`. Observe o seguinte:
  + Cada tag deve corresponder exatamente a *ambos*: à chave e ao valor. Se você especificar somente um elemento `<Key>` e nenhum elemento `<Value>`, a regra será aplicada apenas aos objetos que corresponderem à chave da tag e que *não* tenham um valor especificado.
  + A regra se aplica a um subconjunto de objetos que tem todas as tags especificadas na regra. Se um objeto tiver tags adicionais especificadas, a regra ainda será aplicada.
**nota**  
Quando você especifica várias tags em um filtro, cada chave de tag deve ser exclusiva.
+ **Especificação de um filtro com base no prefixo e em uma ou mais tags**: em uma regra de ciclo de vida, você pode especificar um filtro com base no prefixo de chaves e em uma ou mais tags. Além disso, você deve incluir tudo isso no elemento `<And>`, como mostrado a seguir.

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

  O Amazon S3 combina esses filtros usando uma operação `AND` lógica. Isto é, a regra aplica-se ao subconjunto de objetos com o prefixo de chave especificado e as tags especificadas. Um filtro pode ter somente um prefixo e zero ou mais tags.
+ Você pode especificar um **filtro vazio** e, nesse caso, a regra se aplicará a todos os objetos do bucket.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
+ Para filtrar uma regra por **tamanho do objeto**, você pode especificar um tamanho mínimo (`ObjectSizeGreaterThan`), um tamanho máximo (`ObjectSizeLessThan`) ou um intervalo de tamanhos de objeto.

  Os valores de tamanho de objeto estão em bytes. Por padrão, objetos com menos de 128 KB não serão transferidos para nenhuma classe de armazenamento, a menos que você especifique um tamanho mínimo menor (`ObjectSizeGreaterThan`) ou máximo (`ObjectSizeLessThan`). Para obter mais informações, consulte [Exemplo: permitir que objetos com menos de 128 KB sejam transferidos](lifecycle-configuration-examples.md#lc-small-objects).

  ```
                      <LifecycleConfiguration>
      <Rule>
          <Filter>
              <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>   
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
**nota**  
Os filtros `ObjectSizeGreaterThan` e `ObjectSizeLessThan` excluem os valores especificados. Por exemplo, se você definir objetos com tamanho de 128 KB a 1.024 KB para mover da classe de armazenamento S3 Standard para a classe de armazenamento S3 Standard-IA, os objetos que têm exatamente 1.024 KB e 128 KB não farão a transição para S3 Standard-IA. Em vez disso, a regra se aplicará somente a objetos maiores que 128 KB e menores que 1.024 KB de tamanho. 

  Se você estiver especificando um intervalo de tamanho de objeto, o número inteiro `ObjectSizeGreaterThan` deve ser menor que o valor de `ObjectSizeLessThan`. Ao usar mais de um filtro, é necessário fazer a quebra dos filtros em um elemento `<And>`. O exemplo a seguir mostra como especificar objetos em um intervalo entre 500 e 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 descrever ações de ciclo de vida
<a name="intro-lifecycle-rules-actions"></a>

Você pode instruir o Amazon S3 a executar ações específicas no ciclo de vida de um objeto, especificando uma ou mais das seguintes ações predefinidas em uma regra de ciclo de vida do S3. O efeito dessas ações depende do estado do versionamento de seu bucket. 
+ **Elemento de ação `Transition`**: você especifica a ação `Transition` para fazer a transição de objetos de uma classe de armazenamento para outra. Para obter mais informações sobre transição de objetos, consulte [Transições aceitas](lifecycle-transition-general-considerations.md#lifecycle-general-considerations-transition-sc). Quando uma data ou um período especificado no ciclo de vida do objeto é atingido, o Amazon S3 executa a transição. 

  Para um bucket com versões (versionamento ativado ou suspenso no bucket), a ação `Transition` aplica-se à versão do objeto atual. Para gerenciar versões desatualizadas, o Amazon S3 define a ação `NoncurrentVersionTransition` (descrita posteriormente neste tópico).
+ **Elemento de ação `Expiration`**: a ação `Expiration` descontinua objetos identificados na regra e se aplica a objetos qualificados em qualquer uma das classes de armazenamento do Amazon S3. Para obter mais informações sobre classes de armazenamento, consulte [Compreender e gerenciar classes de armazenamento do Amazon S3](storage-class-intro.md). O Amazon S3 deixa todos os objetos expirados indisponíveis. A remoção permanente dos objetos depende do estado de versionamento do bucket. 
  + **Bucket sem versionamento**: a ação `Expiration` resulta na remoção permanente do objeto pelo Amazon S3. 
  + **Bucket com versão**: para um bucket com versão (ou seja, versionamento ativado ou suspenso), há várias considerações que orientam como o Amazon S3 trata a ação `Expiration`. Para buckets com versionamento habilitado ou suspenso, o seguinte se aplica:
    + A ação `Expiration` se aplica somente à versão atual (não afeta versões não atuais do objeto).
    + O Amazon S3 não realizará ações se houver uma ou mais versões de objeto e se o marcador de exclusão estiver na versão atual.
    + Se a versão atual do objeto for a única versão do objeto e também houver um marcador de exclusão (também chamado de *marcador de exclusão de objeto expirado*, onde todas as versões do objeto são excluídas e você tem somente um marcador de exclusão restante), o Amazon S3 removerá o marcador de exclusão de objeto expirado. Você também pode usar a ação Expiration para instruir o Amazon S3 a remover os marcadores de exclusão do objeto expirado. Para ver um exemplo, consulte [Remover marcadores de exclusão de objetos expirados em um bucket com versionamento habilitado](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7). 

    Para obter mais informações, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md).

    Ao configurar o Amazon S3 para gerenciar a expiração, considere também:
    + **Bucket com versionamento ativado** 

      Se a versão atual do objeto não for um marcador de exclusão, o Amazon S3 adicionará um com um ID exclusivo de versão. Isso torna a versão atual desatualizada, e o marcador de exclusão se torna a versão atual. 
    + **Bucket com versionamento suspenso** 

      Em um bucket com versionamento suspenso, a ação de expiração faz com que o Amazon S3 crie um marcador de exclusão com `null` como ID de versão. Esse marcador de exclusão substitui qualquer versão de objeto por um ID de versão nulo na hierarquia de versões, que exclui o objeto. 

Além disso, o Amazon S3 fornece as seguintes ações que você pode usar para gerenciar versões de objeto não atuais em um bucket com versão (isto é, buckets com versionamento ativado e suspenso).
+ **Elemento de ação `NoncurrentVersionTransition`**: use essa ação para especificar quando o Amazon S3 deve realizar a transição de objetos para a classe de armazenamento especificada. Essa transição pode se basear em determinado número de dias desde o momento em que os objetos se tornam desatualizados (`<NoncurrentDays>`). Além do número de dias, você também pode especificar o número de versões desatualizadas (`<NewerNoncurrentVersions>`) que devem ser retidas (entre 1 e 100). Esse valor determina quantas versões desatualizadas mais recentes devem existir antes que o Amazon S3 possa fazer a transição de determinada versão. O Amazon S3 fará a transição de qualquer versão adicional não atual que ultrapasse o número especificado para reter. Para que a transição ocorra, os valores `<NoncurrentDays>` **e** `<NewerNoncurrentVersions>` devem ser excedidos.

  Para especificar o número de versões desatualizadas que devem ser retidas, também é necessário fornecer um elemento `<Filter>`. Se você não especificar um elemento `<Filter>`, o Amazon S3 gerará um erro `InvalidRequest` quando você especificar o número de versões desatualizadas.

  Para obter mais informações sobre transição de objetos, consulte [Transições aceitas](lifecycle-transition-general-considerations.md#lifecycle-general-considerations-transition-sc). Para obter detalhes sobre como o Amazon S3 calcula a data para especificar o número de dias na ação `NoncurrentVersionTransition`, consulte [Regras de ciclo de vida: com base na idade de um objeto](#intro-lifecycle-rules-number-of-days).
+ **Elemento de ação `NoncurrentVersionExpiration`**: use essa ação para especificar que o Amazon S3 exclua permanentemente versões de objetos não atuais. Esses objetos excluídos não podem ser recuperados. Esse prazo de validade pode se basear em determinado número de dias desde o momento em que os objetos se tornam desatualizados (`<NoncurrentDays>`). Além do número de dias, você também pode especificar o número de versões desatualizadas (`<NewerNoncurrentVersions>`) que devem ser retidas (entre 1 e 100). Esse valor especifica quantas versões desatualizadas mais recentes devem existir antes que o Amazon S3 possa prescrever determinada versão. O Amazon S3 excluirá permanentemente qualquer versão adicional não atual que ultrapasse o número especificado para reter. Para que a exclusão ocorra, os valores `<NoncurrentDays>` **e** `<NewerNoncurrentVersions>` devem ser excedidos.

  Para especificar o número de versões desatualizadas que devem ser retidas, também é necessário fornecer um elemento `<Filter>`. Se você não especificar um elemento `<Filter>`, o Amazon S3 gerará um erro `InvalidRequest` quando você especificar o número de versões desatualizadas.

  A remoção atrasada de objetos não atuais pode ser útil quando é necessário corrigir exclusões ou substituições acidentais. Por exemplo, você pode configurar uma regra de expiração para excluir versões não atuais cinco dias após ficarem nesse estado. Por exemplo, imagine que, em 1.º/1/2014, às 10h30 UTC, você crie um objeto denominado `photo.gif` (ID de versão 111111). Em 2/1/2014, às 11h30 UTC, você exclui acidentalmente `photo.gif` (ID de versão 111111), o que cria um marcador de exclusão com um novo ID de versão (como ID de versão 4857693). Agora você tem cinco dias para recuperar a versão original de `photo.gif` (ID de versão 111111) até que a exclusão seja permanente. Em 8/1/2014, à 0h UTC, a regra de ciclo de vida para expiração executa e exclui permanentemente `photo.gif` (ID de versão 111111), cinco dias depois de se tornar uma versão não atual. 

  Para obter detalhes sobre como o Amazon S3 calcula a data para especificar o número de dias em uma ação `NoncurrentVersionExpiration`, consulte [Regras de ciclo de vida: com base na idade de um objeto](#intro-lifecycle-rules-number-of-days).
**nota**  
As configurações de ciclo de vida de expiração do objeto não removem carregamentos fracionados incompletos. Para remover carregamentos fracionados incompletos, você deve usar a ação de configuração de ciclo de vida `AbortIncompleteMultipartUpload`, que é descrita posteriormente nesta seção. 

Além das ações de transição e expiração, você pode usar as ações de configuração de ciclo de vida a seguir para instruir o Amazon S3 a interromper carregamentos fracionados incompletos. 
+ **Elemento de ação`AbortIncompleteMultipartUpload`**: use esse elemento para definir o tempo máximo (em dias) em que você deseja permitir que os carregamentos fracionados continuem em andamento. Se os carregamentos fracionados aplicáveis (determinados pelo `prefix` de nome de chave especificado na regra de ciclo de vida) não forem concluídos no período predefinido, o Amazon S3 interromperá os carregamentos fracionados incompletos. Para obter mais informações, consulte [Abortar um multipart upload](abort-mpu.md). 
**nota**  
Não é possível especificar essa ação de ciclo de vida em uma regra que tenha um filtro que use tags de objeto. 
+ **Elemento de ação `ExpiredObjectDeleteMarker`**: em um bucket com versionamento habilitado, um marcador de exclusão sem versões não atuais é chamado de *marcador de exclusão de objeto expirado*. Você pode usar essa ação de ciclo de vida para instruir o Amazon S3 a remover marcadores de exclusão de objeto expirado. Para ver um exemplo, consulte [Remover marcadores de exclusão de objetos expirados em um bucket com versionamento habilitado](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7).
**nota**  
Não é possível especificar essa ação de ciclo de vida em uma regra que tenha um filtro que use tags de objeto.

### Como o Amazon S3 calcula quanto tempo um objeto ficou desatualizado
<a name="non-current-days-calculations"></a>

Em um bucket com versionamento habilitado, é possível ter várias versões de um objeto. Há sempre uma versão atual e zero ou mais versões desatualizadas. Sempre que você faz upload de um objeto, a versão atual é retida como a versão não atual e a versão recém-adicionada, a sucessora, se torna a versão atual. Para determinar o número de dias que um objeto fica desatualizado, o Amazon S3 observa quando o sucessor foi criado. O Amazon S3 usa o número de dias desde que o sucessor foi criado como o número de dias que um objeto fica desatualizado.

**Restaurar versões anteriores de um objeto ao usar configurações do S3 Lifecycle**  
Como explicado em [Restaurar versões anteriores](RestoringPreviousVersions.md), você pode usar qualquer um dos dois métodos seguintes para recuperar versões anteriores de um objeto:  
**Método 1: copiar uma versão não atual do objeto no mesmo bucket.** O objeto copiado torna-se a versão atual desse objeto e todas as versões são preservadas.
**Método 2: excluir permanentemente a versão atual do objeto.** Ao excluir a versão atual do objeto, você acaba transformando a versão não atual na versão atual do objeto. 
Quando você estiver usando regras de configuração do S3 Lifecycle com buckets habilitados para versionamento, a prática recomendada é usar o método 1.   
O S3 Lifecycle opera sob um modelo de consistência final. Existe a possibilidade de uma versão atual excluída permanentemente não desaparecer enquanto as alterações não forem propagadas para todos os sistemas do Amazon S3. (Por isso, temporariamente, o Amazon S3 pode não perceber essa exclusão.) Entretanto, a regra de ciclo de vida configurada para a validade de objetos desatualizados pode remover permanentemente objetos desatualizados, inclusive aquele que você deseja restaurar. Portanto, copiar a versão antiga, como recomendado no método 1, é uma alternativa mais confiável.

### Ações de ciclo de vida e estado de versionamento do bucket
<a name="lifecycle-actions-bucket-versioning-state"></a>

A tabela a seguir resume o comportamento das ações de regra de configuração do S3 Lifecycle em objetos com relação ao estado do versionamento do bucket que contém o objeto.


| Ação | Bucket sem versão (versionamento não ativado) | Bucket com versionamento ativado | Bucket com versionamento suspenso | 
| --- | --- | --- | --- | 
|  `Transition` Quando uma data ou um período especificado no ciclo de vida do objeto é atingido.  | O Amazon S3 faz a transição do objeto para a classe de armazenamento especificada. | O Amazon S3 faz a transição da versão atual do objeto para a classe de armazenamento especificada. | Mesmo comportamento que um bucket com versionamento ativado. | 
|  `Expiration` Quando uma data ou um período especificado no ciclo de vida do objeto é atingido.  | A ação Expiration exclui o objeto e o objeto excluído não pode ser recuperado. | Se a versão atual não for um marcador de exclusão, o Amazon S3 criará um marcador de exclusão, que passará a ser a versão atual, e a versão atual será retida como uma versão não atual. | A ação de ciclo de vida cria um marcador de exclusão com o ID de versão null, que se transforma na versão atual. Se o ID da versão atual do objeto for null, a ação Expiration excluirá permanentemente essa versão. Caso contrário, a versão atual será retida como uma versão não atual. | 
|  `NoncurrentVersionTransition` Para versões desatualizadas em um bucket com versionamento habilitado ou suspenso, a funcionalidade Ciclo de Vida do S3 faz a transição de um objeto quando o número de dias desde que o objeto se tornou desatualizado excede o valor especificado em **Dias após os objetos ficarem desatualizados** (`<NoncurrentDays>`) na regra **e** quando o número de versões excede o valor especificado em **Número de versões mais recentes a serem retidas** (`<NewerNoncurrentVersions>`) na regra.  | NoncurrentVersionTransition não tem efeito. |  O Amazon S3 faz a transição das versões não atuais do objeto para a classe de armazenamento especificada.  | Mesmo comportamento que um bucket com versionamento ativado. | 
|  `NoncurrentVersionExpiration` Para versões desatualizadas em um bucket com versionamento habilitado ou suspenso, a funcionalidade Ciclo de Vida do S3 prescreve um objeto quando o número de dias desde que o objeto se tornou desatualizado excede o valor especificado em **Dias após os objetos ficarem desatualizados** (`<NoncurrentDays>`) na regra **e** quando o número de versões excede o valor especificado em **Número de versões mais recentes a serem retidas** (`<NewerNoncurrentVersions>`) na regra.  | NoncurrentVersionExpiration não tem efeito. | A ação NoncurrentVersionExpiration exclui permanentemente a versão não atual do objeto e o objeto excluído não pode ser recuperado. | Mesmo comportamento que um bucket com versionamento ativado. | 

### Regras de ciclo de vida: com base na idade de um objeto
<a name="intro-lifecycle-rules-number-of-days"></a>

É possível especificar um período, em número de dias desde a criação (ou modificação) do objeto, no qual o Amazon S3 pode realizar a ação especificada. 

Quando você especificar o número de dias nas ações `Transition` e `Expiration` em uma configuração de ciclo de vida do S3, observe o seguinte:
+ O valor que você especifica é o número de dias que devem transcorrer desde a criação do objeto para que a ação ocorra.
+ O Amazon S3 calcula o tempo, adicionando o número de dias especificado na regra ao momento de criação do objeto e arredondando o tempo resultante para a meia-noite UTC do próximo dia. Por exemplo, se um objeto foi criado em 15/1/2014, às 10h30 UTC, e você especificar três dias em uma regra de transição, a data de transição do objeto será calculada como 19/1/2014, 0h UTC. 

**nota**  
O Amazon S3 mantém apenas a data da última modificação para cada objeto. Por exemplo, o console do Amazon S3 mostra a data **Última modificação** no painel **Propriedades** do objeto. Quando você cria inicialmente um objeto, essa data reflete a data em que o objeto é criado. Se você substituir o objeto, a data será alterada conforme necessário. Portanto, a data de criação é idêntica à data da **Última modificação**. 

Ao especificar o número de dias nas ações `NoncurrentVersionTransition` e `NoncurrentVersionExpiration` em uma configuração de ciclo de vida, observe o seguinte:
+ O valor que você especifica é o número de dias que devem transcorrer desde o momento em que a versão do objeto se torna desatualizada (ou seja, quando o objeto é sobrescrito ou excluído) para que o Amazon S3 execute a ação em um ou mais objetos especificados.
+ O Amazon S3 calcula o tempo, adicionando o número de dias especificado na regra ao momento em que a nova versão sucessora do objeto é criada e arredondando o tempo resultante para a meia-noite UTC do próximo dia. Por exemplo, no seu bucket, suponha que a versão atual de um objeto foi criada em 1º./1/2014, às 10h30 UTC. Se a nova versão do objeto que substitui a atual tiver sido criada em 15/1/2014, às 10h30 UTC, e você especificar uma regra de transição de três dias, a data de transição do objeto será calculada como 19/1/2014, 0h UTC. 

### Regras de ciclo de vida: com base em uma data especificada
<a name="intro-lifecycle-rules-date"></a>

Ao especificar uma ação em uma regra de ciclo de vida do S3, é possível especificar uma data em que deseja que o Amazon S3 realize a ação. Quando a data especificada chegar, o Amazon S3 aplicará a ação a todos os objetos qualificados (com base nos critérios de filtro). 

Se você especificar uma ação do S3 Lifecycle com uma data no passado, todos os objetos qualificados estarão imediatamente qualificados para essa ação de ciclo de vida.

**Importante**  
A ação com base em data não é uma ação única. O Amazon S3 continuará aplicando a ação com base em data mesmo após a data ter passado, contanto que o status da regra seja `Enabled`.  
Por exemplo, imagine que você especifique uma ação `Expiration` com base em data para excluir todos os objetos (supondo que nenhum filtro seja especificado na regra). Na data especificada, o Amazon S3 expira todos os objetos no bucket. O Amazon S3 também continuará invalidando todos os objetos que você criar no bucket. Para interromper a ação de ciclo de vida, você deve remover a ação da regra de ciclo de vida, desabilitar a regra ou excluir a regra da configuração de ciclo de vida.

O valor de data deve estar em conformidade com o formato ISO 8601. A hora é sempre meia-noite (UTC). 

**nota**  
Não é possível criar regras de ciclo de vida com base em data usando o console do Amazon S3, mas você pode visualizar, desabilitar ou excluir essas regras. 

# Como adicionar filtros a regras de ciclo de vida
<a name="intro-lifecycle-filters"></a>

Os filtros são um elemento opcional das regras de ciclo de vida que você pode usar para especificar a quais objetos a regra se aplica.

Os elementos a seguir podem ser usados para filtrar objetos:

**Prefixo de chaves**  
É possível filtrar objetos com base em um prefixo. Caso queira aplicar uma ação de ciclo de vida a um subconjunto de objetos com diferentes prefixos, crie regras separadas para cada ação.

**Tags de objeto**  
É possível filtrar objetos com base em uma ou mais tags. Cada tag deve corresponder exatamente à chave e ao valor e, se você especificar várias tags, cada chave de tag deve ser exclusiva. Um filtro com várias tags de objeto se aplica a um subconjunto de objetos que tenha todas as tags especificadas. Se um objeto tiver tags adicionais especificadas, o filtro ainda será aplicado.  
Se você especificar somente um elemento `Key` e nenhum elemento `Value`, a regra será aplicada apenas aos objetos que corresponderem à chave da tag e que não tenham um valor especificado.

**Tamanho mínimo ou máximo do objeto**  
É possível filtrar objetos com base no tamanho. É possível especificar um tamanho mínimo (`ObjectSizeGreaterThan`), um tamanho máximo (`ObjectSizeLessThan`) ou um intervalo de tamanhos de objeto no mesmo filtro. Os valores de tamanho de objeto estão em bytes. O tamanho máximo do filtro é 50 TB. O Amazon S3 aplica um tamanho mínimo padrão de objeto à configuração do ciclo de vida. Para obter mais informações, consulte [Exemplo: permitir que objetos com menos de 128 KB sejam transferidos](lifecycle-configuration-examples.md#lc-small-objects).

É possível combinar diferentes elementos de filtro e, nesse caso, o Amazon S3 usa um `AND` lógico.

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

Os exemplos a seguir mostram como você pode usar elementos de filtro diferentes:
+ **Especificação de um filtro usando prefixos de chave**: este exemplo mostra uma regra do S3 Lifecycle que se aplica a um subconjunto de objetos com base no prefixo de nome de chave (`logs/`). Por exemplo, a regra de ciclo de vida se aplica aos objetos `logs/mylog.txt`, `logs/temp1.txt` e `logs/test.txt`. A regra não se aplica ao objeto `example.jpg`.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Prefix>logs/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
      ...
  </LifecycleConfiguration>
  ```
**nota**  
 Se você tiver um ou mais prefixos que comecem com os mesmos caracteres, poderá incluir todos esses prefixos em sua regra especificando um prefixo parcial sem barra (`/`) no filtro. Por exemplo, suponha que você tenha estes prefixos:  

  ```
  sales1999/
                  sales2000/
                  sales2001/
  ```
Para incluir todos os três prefixos na regra, especifique `sales` como prefixo na regra de ciclo de vida.

  Caso queira aplicar uma ação de ciclo de vida a um subconjunto de objetos com base em prefixos de nome de chave diferentes, especifique regras separadas. Em cada regra, especifique um filtro com base em prefixo. Por exemplo, para descrever uma ação de ciclo de vida para objetos com prefixos de chave `projectA/` e `projectB/`, especifique duas regras da seguinte forma: 

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

  Para obter mais informações sobre chaves de objeto, consulte [Nomear objetos do Amazon S3](object-keys.md). 
+ **Especificação de um filtro com base em tags de objeto**: no exemplo a seguir, a regra de ciclo de vida especifica um filtro com base em uma tag (`key`) e valor (`value`). A regra aplica-se somente a um subconjunto de objetos com a tag específica.

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

  Você pode especificar um filtro com base em várias tags. Você deve encapsular as tags no elemento `<And>`, como mostrado no exemplo a seguir. A regra instrui o Amazon S3 a executar ações de ciclo de vida em objetos com duas tags (com a chave e o valor específicos da tag).

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

  A regra de ciclo de vida se aplica a objetos que têm ambas as tags especificadas. O Amazon S3 realiza uma operação lógica `AND`. Observe o seguinte:
  + Cada tag deve corresponder exatamente a *ambos*: à chave e ao valor. Se você especificar somente um elemento `<Key>` e nenhum elemento `<Value>`, a regra será aplicada apenas aos objetos que corresponderem à chave da tag e que *não* tenham um valor especificado.
  + A regra se aplica a um subconjunto de objetos que tem todas as tags especificadas na regra. Se um objeto tiver tags adicionais especificadas, a regra ainda será aplicada.
**nota**  
Quando você especifica várias tags em um filtro, cada chave de tag deve ser exclusiva.
+ **Especificação de um filtro com base no prefixo e em uma ou mais tags**: em uma regra de ciclo de vida, você pode especificar um filtro com base no prefixo de chaves e em uma ou mais tags. Além disso, você deve incluir tudo isso no elemento `<And>`, como mostrado a seguir.

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

  O Amazon S3 combina esses filtros usando uma operação `AND` lógica. Isto é, a regra aplica-se ao subconjunto de objetos com o prefixo de chave especificado e as tags especificadas. Um filtro pode ter somente um prefixo e zero ou mais tags.
+ **Especificar um filtro vazio**: é possível especificar um filtro vazio e, nesse caso, a regra se aplica a todos os objetos no bucket.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
+ **Especificar um filtro de tamanho de objeto**: para filtrar uma regra por tamanho do objeto, é possível especificar um tamanho mínimo (`ObjectSizeGreaterThan`), um tamanho máximo (`ObjectSizeLessThan`) ou um intervalo de tamanhos de objeto.

  Os valores de tamanho de objeto estão em bytes. O tamanho máximo do filtro é 50 TB. Algumas classes de armazenamento têm limitações mínimas de tamanho. Para obter mais informações, consulte [Comparar as classes de armazenamento do Amazon S3](storage-class-intro.md#sc-compare).

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
              <ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>   
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
**nota**  
Os filtros `ObjectSizeGreaterThan` e `ObjectSizeLessThan` excluem os valores especificados. Por exemplo, se você definir objetos com tamanho de 128 KB a 1.024 KB para mover da classe de armazenamento S3 Standard para a classe de armazenamento S3 Standard-IA, os objetos que têm exatamente 1.024 KB e 128 KB não farão a transição para S3 Standard-IA. Em vez disso, a regra se aplicará somente a objetos maiores que 128 KB e menores que 1.024 KB de tamanho. 

  Se você estiver especificando um intervalo de tamanho de objeto, o número inteiro `ObjectSizeGreaterThan` deve ser menor que o valor de `ObjectSizeLessThan`. Ao usar mais de um filtro, é necessário fazer a quebra dos filtros em um elemento `<And>`. O exemplo a seguir mostra como especificar objetos em um intervalo entre 500 e 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>
  ```

# Como o Amazon S3 lida com conflitos nas configurações do ciclo de vida
<a name="lifecycle-conflicts"></a>

Geralmente, o ciclo de vida do Amazon S3 otimiza o custo. Por exemplo, se duas políticas de expiração se sobrepuserem, a mais curta será honrada para que os dados não sejam armazenados por mais tempo do que o esperado. Do mesmo modo, se duas políticas de transição se sobrepuserem, o ciclo de vida do S3 irá fazer a transição dos seus objetos para a classe de armazenamento de menor custo.

Nos dois casos, o ciclo de vida do S3 tenta escolher o caminho com menos custo para você. Uma exceção a essa regra geral é com a classe de armazenamento S3 Intelligent-Tiering. O S3 Intelligent-Tiering é favorecido pelo ciclo de vida do S3 em qualquer classe de armazenamento, além das classes de armazenamento S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive.

Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:
+ A exclusão permanente tem precedência sobre a transição.
+ A transição tem precedência sobre a criação de [marcadores de exclusão](DeleteMarker.md).
+ Quando um objeto é elegível para transição às classes S3 Glacier Flexible Retrieval e S3 Standard-IA (ou S3 One Zone-IA), o Amazon S3 escolhe a transição para a classe S3 Glacier Flexible Retrieval.

## Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes
<a name="lifecycle-config-conceptual-ex5"></a>

Você pode especificar uma configuração de ciclo de vida do S3 em que especifica prefixos ou ações sobrepostos. Os exemplos a seguir mostram como o Amazon S3 resolve possíveis conflitos.

**Example 1: prefixos sobrepostos (nenhum conflito)**  
O exemplo de configuração a seguir tem duas regras especificando prefixos sobrepostos da seguinte maneira:  
+ A primeira regra especifica um filtro vazio, indicando todos os objetos no bucket. 
+ A segunda regra especifica um prefixo de nome de chave (`logs/`) indicando somente um subconjunto de objetos.
A Regra 1 solicita que o Amazon S3 exclua todos os objetos um ano após a criação. A Regra 2 solicita que o Amazon S3 faça a transição de um subconjunto de objetos para a classe de armazenamento do S3 Standard – IA 30 dias após a criação.  

```
 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>
```
Como não há conflito nesse caso, o Amazon S3 fará a transição dos objetos com o prefixo `logs/` para a classe de armazenamento S3 Standard – IA 30 dias após a criação. Ao atingir um ano após a criação, qualquer objeto será excluído.

**Example 2: ações de ciclo de vida conflitantes**  
Nesta configuração de exemplo, há duas regras que levam o Amazon S3 a executar ao mesmo tempo duas diferentes ações no mesmo conjunto de objetos na vida útil do objeto:  
+ Ambas as regras especificam o mesmo prefixo de nome de chave, de modo que ambas as regras se aplicam ao mesmo conjunto de objetos.
+ Ambas as regras especificam os mesmos 365 dias após a criação de objeto quando as regras se aplicam.
+ Uma regra leva o Amazon S3 a fazer a transição de objetos para a classe de armazenamento S3 Standard – IA e outra regra quer que o Amazon S3 expire os objetos ao mesmo tempo.

```
<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>
```
Nesse caso, como você deseja que os objetos percam a validade (sejam removidos), não faz sentido mudar a classe de armazenamento, então o Amazon S3 simplesmente escolhe a ação de validade desses objetos.

**Example 3: prefixos sobrepostos que resultam em ações de ciclo de vida conflitantes**  
Neste exemplo, a configuração tem duas regras, que especificam prefixos sobrepostos da seguinte maneira:  
+ A regra 1 especifica um prefixo vazio (indicando todos os objetos).
+ A regra 2 especifica um prefixo de nome de chave (`logs/`) que identifica um subconjunto de todos os objetos.
Para o subconjunto de objetos com o prefixo de nome de chave `logs/`, as ações do S3 Lifecycle em ambas as regras se aplicam. Uma regra direciona o Amazon S3 a fazer a transição de objetos dez dias após a criação, e outra regra direciona o Amazon S3 a fazer a transição de objetos 365 dias após a criação.   

```
<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>
```
Nesse caso, o Amazon S3 escolhe fazer a transição dos objetos 10 dias após a criação. 

**Example 4: filtragem baseada em tags e ações de ciclo de vida conflitantes resultantes**  
Suponha que você tenha a seguinte configuração de ciclo de vida do S3 que tem duas regras, cada uma especificando um filtro de tag:  
+ A regra 1 especifica um filtro baseado em tag (`tag1/value1`). Essa regra direciona o Amazon S3 para fazer a transição de objetos para a classe de armazenamento S3 Glacier Flexible Retrieval 365 dias após a criação.
+ A regra 2 especifica um filtro baseado em tag (`tag2/value2`). Essa regra leva o Amazon S3 a expirar objetos 14 dias após a criação.
A configuração do S3 Lifecycle é apresentada como a seguir.  

```
<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>
```
Se um objeto tiver as duas etiquetas, o Amazon S3 precisará decidir qual regra seguir. Nesse caso, o Amazon S3 expira o objeto 14 dias após a criação. O objeto é removido e, portanto, a ação de transição não é aplicada.





# Exemplos de configurações do Ciclo de Vida do S3
<a name="lifecycle-configuration-examples"></a>

Esta seção fornece exemplos de configuração do ciclo de vida do S3. Cada exemplo mostra como você pode especificar o XML em cada um dos cenários de exemplo.

**Topics**
+ [Arquivar todos os objetos em até um dia após a criação](#lifecycle-config-ex1)
+ [Desabilitar temporariamente as regras de ciclo de vida](#lifecycle-config-conceptual-ex2)
+ [Rebaixar uma classe de armazenamento pela duração do ciclo de vida de um objeto](#lifecycle-config-conceptual-ex3)
+ [Especificar várias regras](#lifecycle-config-conceptual-ex4)
+ [Especificar uma regra de ciclo de vida para um bucket com versionamento habilitado](#lifecycle-config-conceptual-ex6)
+ [Remover marcadores de exclusão de objetos expirados em um bucket com versionamento habilitado](#lifecycle-config-conceptual-ex7)
+ [Configuração do Ciclo de Vida para anular carregamentos fracionados](#lc-expire-mpu)
+ [Expirar objetos desatualizados que não têm data](#lc-size-rules)
+ [Exemplo: permitir que objetos com menos de 128 KB sejam transferidos](#lc-small-objects)

## Arquivar todos os objetos em até um dia após a criação
<a name="lifecycle-config-ex1"></a>

Cada regra do S3 Lifecycle inclui um filtro que pode ser usado para identificar um subconjunto de objetos em seu bucket ao qual a regra do S3 Lifecycle se aplica. As configurações de ciclo de vida do S3 a seguir mostram exemplos de como você pode especificar um filtro.
+ Nesta regra de configuração do S3 Lifecycle, o filtro especifica um prefixo das chaves (`tax/`). Portanto, a regra aplica-se a objetos com o prefixo de nome de chave `tax/`, como `tax/doc1.txt` e `tax/doc2.txt`.

  A regra especifica duas ações que direcionam o Amazon S3 a fazer o seguinte:
  + Faça a transição de objetos para a classe de armazenamento S3 Glacier Flexible Retrieval 365 dias (um ano) após a criação.
  + Exclua objetos (a ação `Expiration`) 3.650 dias (10 anos) após a criação.

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

  Em vez de especificar a idade do objeto em termos de dias após a criação, você pode especificar uma data para cada ação. No entanto, você não pode usar `Date` e `Days` na mesma regra. 
+ Se você quiser que a regra do S3 Lifecycle se aplique a todos os objetos no bucket, especifique um prefixo vazio. Na configuração a seguir, a regra especifica uma ação `Transition` que direciona o Amazon S3 para fazer a transição de objetos para a classe de armazenamento S3 Glacier Flexible Retrieval 0 dia após a criação. Essa regra significa que os objetos são elegíveis para arquivamento na classe S3 Glacier Flexible Retrieval à meia-noite (UTC) após a criação. Para obter mais informações sobre restrições de ciclo de vida, consulte [Restrições e considerações relativas a transições](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>
  ```
+ Você pode especificar zero ou um prefixo de nome de chave ou zero ou mais tags de objeto em um filtro. O exemplo de código a seguir aplica a regra do S3 Lifecycle a um subconjunto de objetos com prefixo das chaves `tax/` e a objetos que têm duas etiquetas com uma chave e um valor específicos. Ao especificar mais de um filtro, você deve incluir o elemento `<And>` conforme mostrado (o Amazon S3 aplica um elemento `AND` lógico para combinar as condições de 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>
  ...
  ```

  
+ Você pode filtrar objetos com base apenas nas tags. Por exemplo, a regra do S3 Lifecycle a seguir aplica-se a objetos que tenham duas etiquetas especificadas (não especifica nenhum prefixo).

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

  

**Importante**  
Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:  
A exclusão permanente tem precedência sobre a transição.
A transição tem precedência sobre a criação de [marcadores de exclusão](DeleteMarker.md).
Quando um objeto é elegível para transição para as classes S3 Glacier Flexible Retrieval e S3 Standard-IA (ou S3 One Zone-IA), o Amazon S3 escolhe a transição para a classe S3 Glacier Flexible Retrieval.
 Para obter exemplos, consulte [Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 



## Desabilitar temporariamente as regras de ciclo de vida
<a name="lifecycle-config-conceptual-ex2"></a>

É possível desabilitar temporariamente uma regra do Ciclo de Vida do S3 usando o elemento `status`. Isso pode ser útil se você quiser testar novas regras ou solucionar problemas com sua configuração, sem substituir as regras existentes. A configuração do S3 Lifecycle a seguir especifica duas regras:
+ Na regra 1, o Amazon S3 faz a transição de objetos com o prefixo `logs/` para a classe de armazenamento S3 Glacier Flexible Retrieval logo após a criação. 
+ Na regra 2, o Amazon S3 faz a transição de objetos com o prefixo `documents/` para a classe de armazenamento S3 Glacier Flexible Retrieval logo após a criação. 

Na configuração, a regra 1 é habilitada e a regra 2 é desabilitada. O Amazon S3 ignora a regra desabilitada.

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

## Rebaixar uma classe de armazenamento pela duração do ciclo de vida de um objeto
<a name="lifecycle-config-conceptual-ex3"></a>

Neste exemplo, você usa a configuração do S3 Lifecycle para rebaixar a classe de armazenamento de objetos pela sua vida útil. O rebaixamento pode ajudar a reduzir os custos de armazenamento. Para obter mais informações sobre a definição de preços, consulte [Definição de preços do Amazon S3](https://aws.amazon.com/s3/pricing/).

A configuração do S3 Lifecycle a seguir especifica uma regra que se aplica a objetos com o prefixo de nome de chave `logs/`. A regra especifica as seguintes ações:
+ Duas ações de transição:
  + Transição de objetos para a classe de armazenamento S3 Standard – IA 30 dias após a criação.
  + Faça a transição de objetos para a classe de armazenamento S3 Glacier Flexible Retrieval 90 dias após a criação.
+ Uma ação de expiração que leva o Amazon S3 a excluir esses objetos um ano após a criação.

```
<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**  
Você pode usar uma regra para descrever todas as ações do S3 Lifecycle se todas as ações se aplicarem ao mesmo conjunto de objetos (identificados pelo filtro). Caso contrário, você pode adicionar várias regras com cada uma especificando um filtro diferente.

**Importante**  
Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:  
A exclusão permanente tem precedência sobre a transição.
A transição tem precedência sobre a criação de [marcadores de exclusão](DeleteMarker.md).
Quando um objeto é elegível para transição para as classes S3 Glacier Flexible Retrieval e S3 Standard-IA (ou S3 One Zone-IA), o Amazon S3 escolhe a transição para a classe S3 Glacier Flexible Retrieval.
 Para obter exemplos, consulte [Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Especificar várias regras
<a name="lifecycle-config-conceptual-ex4"></a>



Você pode especificar várias regras se quiser diferentes ações do S3 Lifecycle de diferentes objetos. A configuração do S3 Lifecycle a seguir tem duas regras:
+ A regra 1 se aplica a objetos com prefixo de nome de chave `classA/`. Com ela, o Amazon S3 faz a transição de objetos para a classe de armazenamento S3 Glacier Flexible Retrieval um ano após a criação e expira esses objetos dez anos após a criação.
+ A regra 2 se aplica a objetos com prefixo de nome de chave `classB/`. Ela direciona o Amazon S3 para fazer a transição de objetos para a classe de armazenamento S3 Standard – IA 90 dias após a criação e excluí-los um ano após a criação.

```
<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**  
Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:  
A exclusão permanente tem precedência sobre a transição.
A transição tem precedência sobre a criação de [marcadores de exclusão](DeleteMarker.md).
Quando um objeto é elegível para transição para as classes S3 Glacier Flexible Retrieval e S3 Standard-IA (ou S3 One Zone-IA), o Amazon S3 escolhe a transição para a classe S3 Glacier Flexible Retrieval.
 Para obter exemplos, consulte [Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes](lifecycle-conflicts.md#lifecycle-config-conceptual-ex5). 

## Especificar uma regra de ciclo de vida para um bucket com versionamento habilitado
<a name="lifecycle-config-conceptual-ex6"></a>

Suponha que você tenha um bucket com versionamento habilitado, ou seja, para cada objeto, há uma versão atual e zero ou mais versões desatualizadas. (Para obter mais informações sobre o versionamento do S3, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md).) 

No exemplo a seguir, você deseja manter o equivalente a um ano de histórico e reter cinco versões desatualizadas. As configurações do S3 Lifecycle permitem manter de 1 a 100 versões de qualquer objeto. Esteja ciente de que mais de cinco versões desatualizadas mais recentes devem existir antes que o Amazon S3 possa prescrever determinada versão. O Amazon S3 excluirá permanentemente qualquer versão adicional não atual que ultrapasse o número especificado para reter. Para que a exclusão ocorra, os valores `NoncurrentDays` e `NewerNoncurrentVersions` devem ser excedidos.

Para economizar em custos de armazenamento, você deseja migrar as versões desatualizadas para o S3 Glacier Flexible Retrieval 30 dias depois de se tornarem desatualizadas (supondo que sejam dados frios, que você não precisa acessar em tempo real). Além disso, diante da expectativa de que a frequência de acesso das versões atuais diminua 90 dias após a criação, você pode optar por mover esses objetos para a classe de armazenamento 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>
```

## Remover marcadores de exclusão de objetos expirados em um bucket com versionamento habilitado
<a name="lifecycle-config-conceptual-ex7"></a>



Um bucket com versionamento habilitado mantém uma versão atual e nenhuma ou mais versões desatualizadas de cada objeto. Ao excluir um objeto, observe o seguinte:
+ Se você não especificar um ID de versão na solicitação de exclusão, o Amazon S3 adicionará um marcador de exclusão em vez de excluir o objeto. A versão atual do objeto se torna desatualizada, e o marcador de exclusão se torna a versão atual. 
+ Se você especificar um ID de versão na solicitação de exclusão, o Amazon S3 excluirá permanentemente a versão do objeto (um marcador de exclusão não é criado).
+ Um marcador de exclusão sem versões desatualizadas é chamado de *marcador de exclusão do objeto expirado*. 

Este exemplo mostra um cenário que pode criar marcadores de exclusão de objetos expirados em seu bucket e como você pode usar a configuração de ciclo de vida do S3 para que o Amazon S3 remova os marcadores de exclusão de objetos expirados.

Suponha que você crie uma configuração da funcionalidade Ciclo de Vida do S3 que use a ação `NoncurrentVersionExpiration` para remover as versões desatualizadas 30 dias após se tornarem desatualizadas e reter dez versões desatualizadas, como mostrado a seguir. Esteja ciente de que mais de dez versões desatualizadas mais recentes devem existir antes que o Amazon S3 possa prescrever determinada versão. O Amazon S3 excluirá permanentemente qualquer versão adicional não atual que ultrapasse o número especificado para reter. Para que a exclusão ocorra, os valores `NoncurrentDays` e `NewerNoncurrentVersions` devem ser excedidos.

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

A ação `NoncurrentVersionExpiration` não se aplica às versões de objeto atualizadas. Ela remove apenas versões desatualizadas.

Para versões atuais do objeto, existem as opções abaixo para gerenciar o ciclo de vida. Tudo vai depender de as versões atuais seguirem um ciclo de vida bem definido: 
+ **As versões atuais do objeto seguem um ciclo de vida bem definido.**

  Nesse caso, você pode usar a configuração de ciclo de vida do S3 com a ação `Expiration` para que o Amazon S3 remova as versões atuais, conforme exibido no exemplo a seguir.

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

  Neste exemplo, o Amazon S3 remove as versões atualizadas 60 dias após serem criadas adicionando um marcador de exclusão para cada uma das versões atualizadas do objeto. Esse processo torna a versão atual do objeto desatualizada, e o marcador de exclusão torna-se a versão atual. Para obter mais informações, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md). 
**nota**  
Não é possível especificar uma tag `Days` e uma `ExpiredObjectDeleteMarker` na mesma regra. Com a especificação da etiqueta `Days`, o Amazon S3 executará automaticamente a limpeza `ExpiredObjectDeleteMarker` assim que os marcadores de exclusão tiverem idade suficiente para satisfazer os critérios de idade. Para limpar marcadores de exclusão assim que eles se tornarem a única versão, crie uma regra separada contendo apenas a etiqueta `ExpiredObjectDeleteMarker`.

  A ação `NoncurrentVersionExpiration` na mesma configuração do S3 Lifecycle remove os objetos desatualizados 30 dias após se tornarem desatualizados. Assim, neste exemplo, todas as versões de objeto são permanentemente removidas 90 dias após a criação do objeto. Esteja ciente de que, nesse exemplo, mais de dez versões desatualizadas mais recentes devem existir antes que o Amazon S3 possa prescrever determinada versão. O Amazon S3 excluirá permanentemente qualquer versão adicional não atual que ultrapasse o número especificado para reter. Para que a exclusão ocorra, os valores `NoncurrentDays` e `NewerNoncurrentVersions` devem ser excedidos. 

  Embora marcadores de exclusão de objetos expirados sejam criados durante esse o processo, o Amazon S3 detecta e remove os marcadores de exclusão de objetos expirados para você. 
+ **As versões atuais do objeto não têm um ciclo de vida bem definido.** 

  Neste caso, convém remover os objetos manualmente quando não forem mais necessários criando um marcador de exclusão com uma ou mais versões desatualizadas. Se a configuração do S3 Lifecycle com a ação `NoncurrentVersionExpiration` remover todas as versões desatualizadas, agora você terá marcadores de exclusão de objetos expirados.

  Especificamente para este cenário, a configuração do S3 Lifecycle fornece uma ação `Expiration` que você pode usar para remover os marcadores de exclusão de objetos expirados.

  

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

Ao definir o elemento `ExpiredObjectDeleteMarker` como `true` na ação `Expiration`, você faz o Amazon S3 remover os marcadores de exclusão de objetos expirados.

**nota**  
Ao usar a ação `ExpiredObjectDeleteMarker` do S3 Lifecycle, a regra não pode especificar um filtro baseado em etiqueta.

## Configuração do Ciclo de Vida para anular carregamentos fracionados
<a name="lc-expire-mpu"></a>

Você pode usar as operações de API REST de carregamento fracionado do Amazon S3 para carregar objetos grandes em partes. Para obter mais informações sobre multipart uploads, consulte [Carregar e copiar objetos usando upload fracionado no Amazon S3](mpuoverview.md). 

Usando a configuração do S3 Lifecycle, você pode levar o Amazon S3 a interromper carregamentos fracionados incompletos (identificados pelo prefixo de nome de chave especificado na regra) se eles não forem concluídos em um número especificado de dias após a inicialização. Ao interromper um carregamento fracionado, o Amazon S3 exclui todas as partes associadas ao carregamento fracionado. Esse processo ajuda a controlar os custos de armazenamento, garantindo que você não tenha carregamentos fracionados incompletos com partes que estão armazenadas no Amazon S3. 

**nota**  
Ao usar a ação `AbortIncompleteMultipartUpload` do S3 Lifecycle, a regra não pode especificar um filtro baseado em etiqueta.

Veja a seguir um exemplo de configuração de ciclo de vida do S3 que especifica uma regra com a ação `AbortIncompleteMultipartUpload`. Essa ação solicita que o Amazon S3 interrompa carregamentos fracionados incompletos sete dias após a inicialização.

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

## Expirar objetos desatualizados que não têm data
<a name="lc-size-rules"></a>

É possível criar regras que fazem a transição de objetos com base somente no tamanho. Você pode especificar um tamanho mínimo (`ObjectSizeGreaterThan`), um tamanho máximo (`ObjectSizeLessThan`) ou um intervalo de tamanhos de objeto em bytes. Ao usar mais de um filtro, como prefixo e regra de tamanho, é necessário quebrar os filtros em um 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>
```

Se você especificar um intervalo usando os elementos `ObjectSizeGreaterThan` e `ObjectSizeLessThan`, o tamanho máximo do objeto deverá ser maior que o tamanho mínimo do objeto. Ao usar mais de um filtro, é necessário fazer a quebra dos filtros em um elemento `<And>`. O exemplo a seguir mostra como especificar objetos em um intervalo entre 500 e 64.000 bytes. Quando você especifica um intervalo, os filtros `ObjectSizeGreaterThan` e `ObjectSizeLessThan` excluem os valores especificados. Para obter mais informações, consulte [Elemento Filter](intro-lifecycle-rules.md#intro-lifecycle-rules-filter).

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

Você também pode criar regras para expirar especificamente objetos desatualizados que não têm nenhum dado, incluindo objetos de marcador de exclusão desatualizados criados em um bucket com versionamento habilitado. O exemplo a seguir usa a ação `NoncurrentVersionExpiration` para remover as versões desatualizadas 30 dias após se tornarem desatualizadas e reter dez versões desatualizadas. Ele também usa o elemento `ObjectSizeLessThan` para filtrar somente objetos sem nenhum dado. 

Esteja ciente de que mais de dez versões desatualizadas mais recentes devem existir antes que o Amazon S3 possa prescrever determinada versão. O Amazon S3 excluirá permanentemente qualquer versão adicional não atual que ultrapasse o número especificado para reter. Para que a exclusão ocorra, os valores `NoncurrentDays` e `NewerNoncurrentVersions` devem ser excedidos. 

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

## Exemplo: permitir que objetos com menos de 128 KB sejam transferidos
<a name="lc-small-objects"></a>

O Amazon S3 aplica um comportamento padrão às configurações de ciclo de vida que não permite a transferência de objetos com menos de 128 KB para nenhuma classe de armazenamento. Para permitir a transição de objetos menores, adicione um filtro de tamanho mínimo (`ObjectSizeGreaterThan`) ou tamanho máximo (`ObjectSizeLessThan`) à configuração que especifique um tamanho menor. O seguinte exemplo permite fazer a transição de qualquer objeto com menos de 128 KB para a classe de armazenamento 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**  
Em setembro de 2024, o Amazon S3 atualizou o comportamento de transição padrão para objetos pequenos, da seguinte forma:  
**Comportamento de transição padrão atualizado**: desde setembro de 2024, o comportamento padrão não permite a transferência de objetos com menos de 128 KB para nenhuma classe de armazenamento.
**Comportamento de transição padrão anterior**: antes de setembro de 2024, o comportamento padrão permitia que objetos com menos de 128 KB fossem transferidos somente para as classes de armazenamento S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive.
As configurações criadas antes de setembro de 2024 retêm o comportamento de transição anterior, a menos que você as modifique. Ou seja, se você criar, editar ou excluir regras, o comportamento de transição padrão da configuração mudará para o comportamento atualizado. Se seu caso de uso exigir, será possível alterar o comportamento de transição padrão para que objetos com menos de 128 KB façam a transição para o S3 Glacier Flexible Retrieval e o S3 Glacier Deep Archive. Para fazer isso, use o cabeçalho opcional `x-amz-transition-object-size-minimum-default` em uma solicitação [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html).

O exemplo a seguir mostra como usar o cabeçalho `x-amz-transition-object-size-minimum-default` em uma solicitação [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) para aplicar o comportamento de transição padrão `varies_by_storage_class` a uma configuração da funcionalidade Ciclo de Vida do S3. Esse comportamento permite fazer a transição de objetos com menos de 128 KB para as classes de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive. Por padrão, todas as outras classes de armazenamento evitarão transições menores que 128 KB. Ainda é possível usar filtros personalizados para alterar o tamanho mínimo de transição para qualquer classe de armazenamento. Os filtros personalizados sempre têm precedência sobre o comportamento de transição padrão:

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

# Solucionar problemas de ciclo de vida do Amazon S3
<a name="troubleshoot-lifecycle"></a>

As informações a seguir podem ajudar você a solucionar problemas comuns com as regras de ciclo de vida do Amazon S3.

**Topics**
+ [Executei uma operação de lista no bucket e vi objetos que achei que estavam expirados ou que tinham sido transferidos de acordo com uma regra de ciclo de vida.](#troubleshoot-lifecycle-1)
+ [Como monitorar as ações realizadas pelas minhas regras de ciclo de vida?](#troubleshoot-lifecycle-2)
+ [Minha quantidade de objetos do S3 ainda aumenta, mesmo depois de configurar as regras do ciclo de vida em um bucket habilitado para versionamento.](#troubleshoot-lifecycle-3)
+ [Como esvaziar meu bucket do S3 usando regras de ciclo de vida?](#troubleshoot-lifecycle-4)
+ [Minha fatura do Amazon S3 aumentou após a transição de objetos para uma classe de armazenamento de menor custo.](#troubleshoot-lifecycle-5)
+ [Eu atualizei minha política de bucket, mas meus objetos do S3 ainda estão sendo excluídos pelas regras de ciclo de vida expiradas.](#troubleshoot-lifecycle-6)
+ [Posso recuperar objetos do S3 que expiraram pelas regras do ciclo de vida do S3?](#troubleshoot-lifecycle-7)
+ [Por que minhas ações do ciclo de vida de expiração e transição não estão ocorrendo?](#troubleshoot-lifecycle-failures)
+ [Como faço para excluir um prefixo da minha regra de ciclo de vida?](#troubleshoot-lifecycle-8)
+ [Como faço para incluir vários prefixos na minha regra de ciclo de vida?](#troubleshoot-lifecycle-9)

## Executei uma operação de lista no bucket e vi objetos que achei que estavam expirados ou que tinham sido transferidos de acordo com uma regra de ciclo de vida.
<a name="troubleshoot-lifecycle-1"></a>

As [transições de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html) e as [expirações de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html) do ciclo de vida do S3 são operações assíncronas. Portanto, pode haver um atraso entre o momento em que os objetos são elegíveis para expiração ou transição e o momento em que eles realmente são transferidos ou expirados. As alterações no faturamento são aplicadas assim que a regra do ciclo de vida é cumprida, mesmo que a ação não seja concluída. A única exceção a esse comportamento é se você tiver uma regra de ciclo de vida definida para transição à classe de armazenamento S3 Intelligent-Tiering. Nesse caso, as alterações no faturamento não acontecerão até que o objeto tenha feito a transição para o S3 Intelligent-Tiering. Para obter mais informações sobre mudanças no faturamento, consulte [Definir a configuração do ciclo de vida em um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

**nota**  
O Amazon S3 não faz a transição de objetos com menos de 128 KB da classe de armazenamento S3 Standard ou S3 Standard-IA para a classe de armazenamento S3 Intelligent-Tiering, S3 Standard-IA ou S3 One Zone-IA.

## Como monitorar as ações realizadas pelas minhas regras de ciclo de vida?
<a name="troubleshoot-lifecycle-2"></a>

Para monitorar as ações realizadas por regras de ciclo de vida, use os seguintes recursos: 
+ **Notificações de eventos do S3**: é possível configurar [notificações de eventos do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configure-notification.html) para receber notificações sobre qualquer evento de transição ou expiração do ciclo de vida do S3.
+ **Logs de acesso ao servidor do S3**: é possível habilitar logs de acesso ao servidor para os buckets do S3 a fim de capturar ações relacionadas ao ciclo de vida do S3, como transições de objetos para outra classe de armazenamento e expirações de objeto. Para obter mais informações, consulte [Ciclo de vida e log](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-and-other-bucket-config.html#lifecycle-general-considerations-logging).

Para visualizar diariamente as mudanças em seu armazenamento causadas pelas ações do ciclo de vida, recomendamos usar os [painéis da Lente de Armazenamento do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html#storage_lens_basics_dashboards) em vez de usar as métricas do Amazon CloudWatch. No painel da Lente de Armazenamento, é possível visualizar as seguintes métricas, que monitoram a quantidade ou tamanho do objeto:
+ **Bytes da versão atual**
+ **Contagem de objetos da versão atual**
+ **Bytes de versão não atual**
+ **Número de objetos de versões não atuais**
+ **Contagem de objetos do marcador de exclusão**
+ **Bytes de armazenamento do marcador de exclusão**
+ **Bytes de uploads incompletos de várias partes**
+ **Contagem de objetos de multipart upload incompletos**

## Minha quantidade de objetos do S3 ainda aumenta, mesmo depois de configurar as regras do ciclo de vida em um bucket habilitado para versionamento.
<a name="troubleshoot-lifecycle-3"></a>

Quando um objeto está expirado em um [bucket com versionamento habilitado](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html#versioning-states), ele não é completamente excluído do bucket. Em vez disso, um [marcador de exclusão](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html) é criado como a versão mais recente do objeto. Os marcadores de exclusão ainda são contados como objetos. Portanto, se uma regra de ciclo de vida for criada para expirar somente nas versões atuais, a contagem de objetos no bucket do S3 realmente aumentará em vez de diminuir.

Por exemplo, digamos que um bucket do S3 tenha o versionamento ativado com 100 objetos, e uma regra de ciclo de vida esteja configurada para expirar as versões atuais do objeto após sete dias. Após o sétimo dia, a quantidade de objetos aumenta para 200 porque 100 marcadores de exclusão são criados além dos 100 objetos originais, que agora são as versões não atuais. Para obter mais informações sobre as ações da regra de configuração do ciclo de vida do S3 para buckets com versionamento ativado, consulte [Definir a configuração do ciclo de vida em um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

Para remover objetos permanentemente, adicione uma configuração de ciclo de vida adicional para excluir as versões anteriores dos objetos, os marcadores de exclusão expirados e os uploads incompletos de várias partes. Para obter instruções sobre como criar regras de ciclo de vida, consulte [Definir a configuração do ciclo de vida em um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

**nota**  
O Amazon S3 arredonda a data de transição ou expiração de um objeto para a meia-noite UTC do dia seguinte.   
Ao avaliar objetos com relação às ações do ciclo de vida, o Amazon S3 usa o horário de criação do objeto em UTC. Por exemplo, considere um bucket sem versionamento com uma regra de ciclo de vida configurada para expirar objetos após um dia. Suponha que um objeto tenha sido criado em 1.º de janeiro às 17h05, Horário de Verão do Pacífico (PDT), que corresponde a 2 de janeiro às 0h05 UTC. O objeto tem um dia de vida às 0h05 UTC de 3 de janeiro, o que o torna elegível para expiração quando o ciclo de vida do S3 avalia os objetos às 0h00 UTC de 4 de janeiro.  
Como as ações do ciclo de vida do Amazon S3 ocorrem de forma assíncrona, pode haver algum atraso entre a data especificada na regra do ciclo de vida e a transição física real do objeto. Consulte mais informações em [Atraso na transição ou na expiração](how-to-set-lifecycle-configuration-intro.md#lifecycle-action-delay).  
Para obter mais informações, consulte [Regras de ciclo de vida: com base na idade de um objeto](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-number-of-days).
Para objetos S3 protegidos pelo bloqueio de objetos, as versões atuais não são excluídas permanentemente. Em vez disso, um marcador de exclusão é adicionado aos objetos, tornando-os não atuais. As versões não atuais são então preservadas e não expiram permanentemente.

## Como esvaziar meu bucket do S3 usando regras de ciclo de vida?
<a name="troubleshoot-lifecycle-4"></a>

As regras do ciclo de vida do S3 são uma ferramenta eficaz para [esvaziar um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) com milhões de objetos. Para excluir um grande número de objetos do bucket do S3, use estes dois pares de regras de ciclo de vida:
+ **Expire as versões atuais dos objetos** e **Exclua permanentemente as versões anteriores dos objetos**
+ **Exclua marcadores de exclusão expirados** e **Exclua uploads incompletos de várias partes**

Para ver as etapas de como criar regras de configuração de ciclo de vida, consulte [Definir a configuração do ciclo de vida em um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html).

**nota**  
Para objetos S3 protegidos pelo bloqueio de objetos, as versões atuais não são excluídas permanentemente. Em vez disso, um marcador de exclusão é adicionado aos objetos, tornando-os não atuais. As versões não atuais são então preservadas e não expiram permanentemente.

## Minha fatura do Amazon S3 aumentou após a transição de objetos para uma classe de armazenamento de menor custo.
<a name="troubleshoot-lifecycle-5"></a>

Há vários motivos pelos quais sua fatura pode aumentar após a transição de objetos para uma classe de armazenamento de menor custo: 
+ Sobrecarga do S3 Glacier cobra por objetos pequenos

  Para cada objeto que é transferido para o S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, uma sobrecarga total de 40 KB é associada a essa atualização de armazenamento. Como parte da sobrecarga de 40 KB, 8 KB são usados para armazenar os metadados e o nome do objeto. Esses 8 KB são cobrados de acordo com as tarifas do S3 Standard. Os 32 KB restantes são usados para indexação e metadados relacionados. Esses 32 KB são cobrados de acordo com os preços do S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive.

  Portanto, se você estiver armazenando muitos objetos menores, não recomendamos o uso de transições de ciclo de vida. Em vez disso, para reduzir as despesas adicionais, considere a possibilidade de agregar vários objetos menores em um número menor de objetos grandes antes de armazená-los no Amazon S3. Para obter mais informações sobre as considerações de custo, consulte [Transição para as classes de armazenamento S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive (arquivamento de objetos)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html#before-deciding-to-archive-objects).
+ Cobranças de armazenamento mínimo

  Algumas classes de armazenamento do S3 têm requisitos mínimos de duração de armazenamento. Os objetos que são excluídos, substituídos ou transferidos dessas classes antes que a duração mínima seja cumprida recebem uma cobrança proporcional de taxa de exclusão ou transição antecipada. Esses requisitos de duração mínima de armazenamento são os seguintes: 
  + S3 Standard-IA e S3 One Zone-IA: 30 dias
  + S3 Glacier Flexible Retrieval e S3 Glacier Instant Retrieval: 90 dias
  + S3 Glacier Deep Archive: 180 dias

  Para obter mais informações sobre esses requisitos, consulte a seção *Restrições* de [Transição de objetos usando o ciclo de vida do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html). Para obter informações gerais sobre preços do S3, consulte [Preços do Amazon S3](https://aws.amazon.com/s3/pricing/) e a [Calculadora de preços da AWS](https://calculator.aws/#/addService/S3).
+ Custos de transição do ciclo de vida

  Cada vez que um objeto é transferido para uma classe de armazenamento diferente por uma regra de ciclo de vida, o Amazon S3 considera essa transição como uma solicitação de transição. Os custos dessas solicitações de transição são adicionais aos custos dessas classes de armazenamento. Se você pretende fazer a transição de um grande número de objetos, considere os custos de solicitação ao fazer a transição para um nível mais baixo. Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

## Eu atualizei minha política de bucket, mas meus objetos do S3 ainda estão sendo excluídos pelas regras de ciclo de vida expiradas.
<a name="troubleshoot-lifecycle-6"></a>

As declarações `Deny` em uma política de bucket não evitam a expiração dos objetos definidos em uma regra de ciclo de vida. As ações do ciclo de vida (como transições ou expirações) não usam a operação `DeleteObject` do S3. Em vez disso, as ações do ciclo de vida do S3 são executadas usando endpoints internos do S3. (Para obter mais informações, consulte [Ciclo de vida e log](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-and-other-bucket-config.html#lifecycle-general-considerations-logging).) 

Para evitar que a regra de ciclo de vida realize qualquer ação, você deve editar, excluir ou [desativar a regra](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lifecycle-config-conceptual-ex2).

## Posso recuperar objetos do S3 que expiraram pelas regras do ciclo de vida do S3?
<a name="troubleshoot-lifecycle-7"></a>

A única maneira de recuperar objetos que expiraram pelo ciclo de vida do S3 é por meio do versionamento, que deve estar em vigor antes que os objetos se tornem elegíveis para expiração. Você não pode desfazer as operações de expiração que são executadas pelas regras do ciclo de vida. Se os objetos forem excluídos permanentemente pelas regras de ciclo de vida do S3 em vigor, você não poderá recuperá-los. Para ativar o versionamento em um bucket, consulte [Reter várias versões de objetos com o Versionamento do S3](Versioning.md).

Se você aplicou o versionamento ao bucket e as versões não atuais dos objetos ainda estão intactas, é possível [restaurar as versões anteriores dos objetos expirados](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RestoringPreviousVersions.html). Para obter mais informações sobre o comportamento das ações e os estados de versionamento do ciclo de vida do S3, consulte a tabela de estados de *Ações de ciclo de vida e estado de versionamento do bucket* em [Elementos de configuração do ciclo de vida](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html#non-current-days-calculations).

**nota**  
Se o bucket do S3 estiver protegido pelo [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/s3-backups.html) ou pela [Replicação do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html), você também poderá usar esses recursos para recuperar os objetos expirados.

## Por que minhas ações do ciclo de vida de expiração e transição não estão ocorrendo?
<a name="troubleshoot-lifecycle-failures"></a>

Para um bucket com versionamento habilitado ou suspenso, as seguintes considerações indicam como o Amazon S3 lida com a ação de expiração:
+ A expiração do objeto se aplica somente à versão atual de um objeto (não afeta versões desatualizadas de objetos).
+ O Amazon S3 não realizará ações se houver uma ou mais versões de objeto e se o marcador de exclusão estiver na versão atual.
+ O Amazon S3 não realiza nenhuma ação em versões não atuais de objetos que tenham o Bloqueio de Objetos do S3 aplicado.
+ Em relação a objetos com o status de replicação `PENDING`, o Amazon S3 não realiza nenhuma ação em versões atuais ou não atuais dos objetos.

As transições da classe de armazenamento do ciclo de vida têm as seguintes restrições:
+ Por padrão, objetos com menos de 128 KB não farão a transição para nenhuma classe de armazenamento.
+ Os objetos devem ser armazenados pelo menos trias dias antes de fazer a transição para S3 Standard-IA ou S3 One Zone-IA.
+ Não é possível fazer a transição de objetos com status de replicação `PENDING` em buckets com versionamento habilitado ou suspenso.

## Como faço para excluir um prefixo da minha regra de ciclo de vida?
<a name="troubleshoot-lifecycle-8"></a>

O S3 Lifecycle não comporta a exclusão de prefixos em suas regras. Em vez disso, use tags para marcar todos os objetos que você deseja incluir na regra. Para ter mais informações sobre como usar tags em regras de ciclo de vida, consulte [Arquivar todos os objetos em até um dia após a criação](lifecycle-configuration-examples.md#lifecycle-config-ex1).

## Como faço para incluir vários prefixos na minha regra de ciclo de vida?
<a name="troubleshoot-lifecycle-9"></a>

O S3 Lifecycle não comporta a inclusão de vários prefixos em suas regras. Em vez disso, use tags para marcar todos os objetos que você deseja incluir na regra. Para ter mais informações sobre como usar tags em regras de ciclo de vida, consulte [Arquivar todos os objetos em até um dia após a criação](lifecycle-configuration-examples.md#lifecycle-config-ex1).

No entanto, se você tiver um ou mais prefixos que comecem com os mesmos caracteres, poderá incluir todos esses prefixos em sua regra especificando um prefixo parcial sem barra (`/`) no filtro. Por exemplo, suponha que você tenha estes prefixos:

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

Para incluir todos os três prefixos na regra, especifique `<Prefix>sales</Prefix>` na regra de ciclo de vida. 