View a markdown version of this page

PUT Bucket lifecycle (obsoleto) - Amazon Simple Storage Service

PUT Bucket lifecycle (obsoleto)

Descrição

Importante

Para obter uma versão atualizada dessa API, consulte PutBucketLifecycleConfiguration. Essa versão está desatualizada. As configurações de ciclo de vida existentes continuarão funcionando. Para novas configurações de ciclo de vida, use a API atualizada.

Cria uma nova configuração do ciclo de vida para o bucket ou substitui uma configuração do ciclo de vida existente. Para obter informações sobre configuração de ciclo de vida, consulte Gerenciamento do ciclo de vida de objetos no Guia do usuário do Amazon Simple Storage Service.

Permissões

Por padrão, todos os recursos do Amazon S3, incluindo buckets, objetos e sub-recursos relacionados (por exemplo, configuração de ciclo de vida e de site), são privados. Somente o proprietário do recurso, a Conta da AWS que o criou, pode acessá-lo. O proprietário do recurso pode conceder permissões de acesso a outros criando uma política de acesso. Para essa operação, os usuários devem obter a permissão s3:PutLifecycleConfiguration.

Também é possível negar explicitamente as permissões. A negação explícita também substitui todas as outras permissões. Se você quiser impedir que usuários ou contas removam ou excluam objetos do seu bucket, negue a eles permissões para as seguintes ações:

  • s3:DeleteObject

  • s3:DeleteObjectVersion

  • s3:PutLifecycleConfiguration

Para obter mais informações sobre permissões, consulte Gerenciamento de permissões de acesso a seus recursos do Amazon S3 no Guia do desenvolvedor do Amazon Simple Storage Service.

Solicitações

Sintaxe

PUT /?lifecycle HTTP/1.1 Host: bucketname.s3.amazonaws.com Content-Length: length Date: date Authorization: authorization string Content-MD5: MD5 Lifecycle configuration in the request body

Para obter detalhes sobre strings de autorização, consulte Autenticação de solicitações (AWS Signature Version 4).

Parâmetros da solicitação

Essa implementação da operação não usa parâmetros de solicitação.

Cabeçalhos de solicitação

Name (Nome) Descrição Obrigatório
Content-MD5

O resumo MD5 de 128 bits com codificação base64 dos dados. Você deve usar esse cabeçalho como uma verificação de integridade da mensagem para verificar se o corpo da solicitação não foi corrompido em trânsito. Para obter mais informações, consulte a RFC 1864.

Tipo: string

Padrão: nenhum

Sim

Corpo da Solicitação

Na solicitação, você especifica a configuração de ciclo de vida no corpo da solicitação. Essa configuração é especificada como XML. Veja a seguir um exemplo de configuração de ciclo de vida. Ela especifica uma regra. O Prefix na regra identifica os objetos aos quais a regra se aplica. A regra também especifica duas ações (Transition e Expiration). Cada ação especifica um cronograma em que o Amazon S3 deve realizar a ação. O Status indica se a regra está habilitada ou desabilitada.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix>key-prefix</Prefix> <Status>rule-status</Status> <Transition>       <Date>value</Date>       <StorageClass>storage class</StorageClass>     </Transition> <Expiration> <Days>value</Days> </Expiration> </Rule> </LifecycleConfiguration>

Se o estado do seu bucket for de versionamento habilitado ou suspenso, você pode ter várias versões do mesmo objeto: uma versão atual e nenhuma ou mais versões desatualizadas. A configuração de ciclo de vida a seguir define as ações (NoncurrentVersionTransition, NoncurrentVersionExpiration) que são específicas para versões de objetos não atuais.

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix>key-prefix</Prefix> <Status>rule-status</Status> <NoncurrentVersionTransition> <NoncurrentDays>value</NoncurrentDays> <StorageClass>storage class</StorageClass> </NoncurrentVersionTransition> <NoncurrentVersionExpiration> <NoncurrentDays>value</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>

Você pode usar a API de multipart upload para fazer upload de objetos grandes em partes. Para obter mais informações sobre uploads fragmentados, consulte Visão geral do upload fragmentado no Guia do desenvolvedor do Amazon Simple Storage Service. Com a configuração de ciclo de vida, você pode instruir o Amazon S3 a cancelar uploads fragmentados incompletos — identificados pelo prefixo do nome da chave especificado na regra — caso não sejam concluídos dentro de um número especificado de dias. Quando o Amazon S3 cancela um upload fragmentado, ele exclui todas as partes associadas ao upload. Isso garante que você não tenha uploads fragmentados incompletos com partes armazenadas no Amazon S3 e, portanto, você não precisa pagar por custos de armazenamento para elas. Veja a seguir um exemplo de configuração de ciclo de vida que especifica uma regra com a ação AbortIncompleteMultipartUpload. Essa ação pede que o Amazon S3 cancele uploads fragmentados incompletos sete dias após a inicialização.

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

A tabela a seguir descreve os elementos XML na configuração de ciclo de vida.

Name (Nome) Descrição Obrigatório
AbortIncompleteMultipartUpload

Contêiner para especificar quando um upload fragmentado incompleto se torna elegível para uma operação de interrupção.

Secundário: DaysAfterInitiation

Tipo: Container

Antepassado: Rule

Sim, se nenhuma outra ação for especificada para a regra
Date

Data em que deseja que o Amazon S3 realize a ação. Para obter mais informações, consulte Regras de ciclo de vida: com base em uma data específica no Guia do usuário do Amazon Simple Storage Service.

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

Tipo: string

Antepassado: Expiration ou Transition

Sim, se Days e ExpiredObjectDeleteMarker estiverem ausentes
Days

Especifica o número de dias após a criação de objeto quando a ação de regra específica entra em vigor.

Tipo: inteiro não negativo quando usado com Transition, inteiro positivo quando usado com Expiration

Antepassado: Expiration, Transition

Sim, se Date e ExpiredObjectDeleteMarker estiverem ausentes
DaysAfterInitiation

Especifica o número de dias quando o upload fragmentado deve ser concluído depois de iniciado. Se não for concluído no número especificado de dias, ele se tornará elegível para uma operação de interrupção e o Amazon S3 cancelará o upload fragmentado incompleto.

Tipo: número inteiro positivo

Antepassado: AbortIncompleteMultipartUpload

Sim, se uma tag principal for especificada
Expiration

Essa ação especifica um período na vida útil de um objeto em que o Amazon S3 deve realizar a ação de expiração apropriada. A ação realizada pelo Amazon S3 depende de se o bucket está habilitado para versionamento.

  • Se o versionamento nunca tiver sido habilitado no bucket, o Amazon S3 excluirá permanentemente a única cópia do objeto.

  • Se o bucket tiver o versionamento habilitado (ou se o versionamento estiver suspenso), a ação se aplicará apenas à versão atual do objeto. Um bucket com versionamento habilitado pode ter várias versões do mesmo objeto: uma versão atual e nenhuma ou mais versões desatualizadas.

    Em vez de excluir a versão atual, o Amazon S3 a transforma em uma versão desatualizada, adicionando um marcador de exclusão como a nova versão atual.

    Importante

    Se o estado de um bucket estiver com versionamento suspenso, o Amazon S3 criará um marcador de exclusão com ID de versão null. Se você tiver uma versão com ID null, o Amazon S3 substituirá essa versão.

    nota

    Para definir a expiração para objetos desatualizados, use a ação NoncurrentVersionExpiration.

Tipo: Container

Filhos: Days ou Date

Antepassado: Rule

Sim, se nenhuma outra ação estiver presente na Rule.
ID

Identificador exclusivo da regra. O valor não pode ser maior que 255 caracteres.

Tipo: string

Antepassado: Rule

Não
LifecycleConfiguration

Contêiner para regras de ciclo de vida. Você pode adicionar até 1.000 regras.

Tipo: Container

Filhos: Rule

Ancestral: Nenhum

Sim
ExpiredObjectDeleteMarker

Em um bucket com versões (versionamento habilitado ou suspenso no bucket), você pode adicionar esse elemento na configuração de ciclo de vida para fazer com que o Amazon S3 exclua os marcadores de exclusão de objetos expirados. Por exemplo, consulte Exemplo 8: remoção de marcadores de exclusão de objetos expirados no Guia do usuário do Amazon Simple Storage Service. Não o adicione a um bucket sem versão, pois esse tipo de bucket não pode incluir marcadores de exclusão.

Tipo: string

Valores válidos: true | false (o valor false é permitido, mas não está funcionando, o que significa que o Amazon S3 não vai realizar nenhuma ação)

Antepassado: Expiration

Sim, se Date e Days estiverem ausentes
NoncurrentDays

Especifica o número de dias que um objeto precisa estar desatualizado antes do Amazon S3 poder executar a ação associada. Para obter informações sobre os cálculos de dias desatualizados, consulte Como o Amazon S3 calcula quando um objeto se torna desatualizado no Guia do desenvolvedor do Amazon Simple Storage Service.

Tipo: inteiro não negativo quando usado com NoncurrentVersionTransition, inteiro positivo quando usado com NoncurrentVersionExpiration

Antepassado: NoncurrentVersionExpiration ou NoncurrentVersionTransition

Sim
NoncurrentVersionExpiration

Especifica quando expiram as versões de objetos não atuais. Após a expiração, o Amazon S3 exclui permanentemente as versões de objetos não atuais.

Defina essa ação de configuração de ciclo de vida em um bucket que tem versionamento habilitado (ou suspenso) para pedir que o Amazon S3 exclua versões de objetos desatualizadas em um período específico na vida útil do objeto.

Tipo: Container

Filhos: NoncurrentDays

Antepassado: Rule

Sim, se nenhuma outra ação estiver presente na Rule
NoncurrentVersionTransition

Contêiner para a regra de transição que descreve quando objetos desatualizados fazem a transição para STANDARD_IA, ONEZONE_IA ou a classe de armazenamento.

Se o bucket estiver habilitado para versionamento (ou se o versionamento estiver suspenso), você pode definir essa ação para pedir que o Amazon S3 realize a transição de versões de objetos desatualizadas em um período específico na vida útil do objeto.

Tipo: Container

Filhos: NoncurrentDays e StorageClass

Antepassado: Rule

Sim, se nenhuma outra ação estiver presente na Rule
Prefix

Prefixo de chaves de objeto que identifica um ou mais objetos aos quais essa regra se aplica.

Tipo: string

Antepassado: Rule

Sim
Rule

Contêiner para uma regra de ciclo de vida. Uma configuração de ciclo de vida pode conter até 1.000 regras.

Tipo: Container

Antepassado: LifecycleConfiguration

Sim
Status

Se habilitado, o Amazon S3 vai executar a regra conforme programado. Se estiver desabilitado, o Amazon S3 vai ignorar a regra.

Tipo: string

Antepassado: Rule

Valores válidos: Enabled, Disabled

Sim
StorageClass

Especifica a classe de armazenamento do Amazon S3 para a qual o objeto fará a transição.

Tipo: string

Antepassado: Transition e NoncurrentVersionTransition

Valores válidos: STANDARD_IA | ONEZONE_IA | GLACIER

Sim

Esse elemento só será necessário se você especificar um ou os dois antepassados.

Transition

Essa ação especifica um período na vida útil dos objetos em que o Amazon S3 deve fazer a transição deles para STANDARD_IA, ONEZONE_IA ou a classe de armazenamento. Quando essa ação está em vigor, o que o Amazon S3 faz depende se o bucket está habilitado para versionamento.

  • Se o versionamento nunca tiver sido habilitado no bucket, o Amazon S3 fará a transição da única cópia do objeto para a classe de armazenamento especificada.

  • Se o bucket estiver habilitado para versionamento (ou o versionamento estiver suspenso), o Amazon S3 fará a transição somente das versões atuais dos objetos identificados na regra.

    nota

    Um bucket com versionamento habilitado pode ter várias versões de um objeto. Essa ação não tem efeito em versões de objetos desatualizadas. Para fazer a transição de objetos desatualizados, use a ação NoncurrentVersionTransition.

Tipo: Container

Filhos: Days ou Date e StorageClass

Antepassado: Rule

Sim, se nenhuma outra ação estiver presente na Rule

Respostas

Cabeçalhos de resposta

Essa implementação da operação usa somente os cabeçalhos de resposta que são comuns à maioria das respostas. Para obter mais informações, consulte Cabeçalhos de resposta comuns.

Elementos de resposta

Essa implementação da operação não retorna elementos de resposta.

Erros especiais

Essa implementação da operação não retorna erros especiais. Para obter informações gerais sobre erros do Amazon S3 e uma lista de códigos de erro, consulte Respostas de erro.

Exemplos

Exemplo 1: adicionar configuração de ciclo de vida a um bucket que não está habilitado para versionamento

A configuração de ciclo de vida a seguir especifica duas regras, cada uma com uma ação.

  • A ação Transition faz com que o Amazon S3 realize a transição de objetos com o prefixo “documents/” para a classe de armazenamento 30 dias após a criação.

  • A ação Expiration faz com que o Amazon S3 exclua objetos com o prefixo “logs/” 365 dias após a criação.

<LifecycleConfiguration> <Rule> <ID>id1</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>id2</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>

Veja a seguir um exemplo de solicitação PUT /?lifecycle que adiciona a configuração de ciclo de vida anterior ao bucket examplebucket.

PUT /?lifecycle HTTP/1.1 Host: examplebucket.s3.amazonaws.com x-amz-date: Wed, 14 May 2014 02:11:21 GMT Content-MD5: q6yJDlIkcBaGGfb3QLY69A== Authorization: authorization string Content-Length: 415 <LifecycleConfiguration> <Rule> <ID>id1</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>id2</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>

Veja a seguir uma resposta de exemplo.

HTTP/1.1 200 OK x-amz-id-2: r+qR7+nhXtJDDIJ0JJYcd+1j5nM/rUFiiiZ/fNbDOsd3JUE8NWMLNHXmvPfwMpdc x-amz-request-id: 9E26D08072A8EF9E Date: Wed, 14 May 2014 02:11:22 GMT Content-Length: 0 Server: AmazonS3

Exemplo 2: adicionar a configuração de ciclo de vida a um bucket com versionamento

A configuração de ciclo de vida a seguir especifica duas regras, cada uma com uma ação para o Amazon S3 realizar. Você especifica essas ações quando o bucket está habilitado para versionamento ou o versionamento está suspenso:

  • A ação NoncurrentVersionExpiration instrui o Amazon S3 a expirar as versões desatualizadas de objetos com o prefixo “logs/” 100 dias após os objetos se tornarem desatualizados.

  • A ação NoncurrentVersionTransition instrui o Amazon S3 a fazer a transição de versões desatualizadas de objetos com o prefixo “documents/” para a classe de armazenamento 30 dias após se tornarem desatualizadas.

<LifeCycleConfiguration> <Rule> <ID>DeleteAfterBecomingNonCurrent</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NoncurrentDays>100</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> <Rule> <ID>TransitionAfterBecomingNonCurrent</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <NoncurrentVersionTransition> <NoncurrentDays>30</NoncurrentDays> <StorageClass>GLACIER</StorageClass> </NoncurrentVersionTransition> </Rule> </LifeCycleConfiguration>

Veja a seguir um exemplo de solicitação PUT /?lifecycle que adiciona a configuração de ciclo de vida anterior ao bucket examplebucket.

PUT /?lifecycle HTTP/1.1 Host: examplebucket.s3.amazonaws.com x-amz-date: Wed, 14 May 2014 02:21:48 GMT Content-MD5: 96rxH9mDqVNKkaZDddgnw== Authorization: authorization string Content-Length: 598 <LifeCycleConfiguration> <Rule> <ID>DeleteAfterBecomingNonCurrent</ID> <Prefix>logs/</Prefix> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NoncurrentDays>1</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> <Rule> <ID>TransitionSoonAfterBecomingNonCurrent</ID> <Prefix>documents/</Prefix> <Status>Enabled</Status> <NoncurrentVersionTransition> <NoncurrentDays>0</NoncurrentDays> <StorageClass>GLACIER</StorageClass> </NoncurrentVersionTransition> </Rule> </LifeCycleConfiguration>

Veja a seguir uma resposta de exemplo.

HTTP/1.1 200 OK x-amz-id-2: aXQ+KbIrmMmoO//3bMdDTw/CnjArwje+J49Hf+j44yRb/VmbIkgIO5A+PT98Cp/6k07hf+LD2mY= x-amz-request-id: 02D7EC4C10381EB1 Date: Wed, 14 May 2014 02:21:50 GMT Content-Length: 0 Server: AmazonS3

Exemplos adicionais

Para obter mais exemplos de transição de objetos para classes de armazenamento, como STANDARD_IA ou ONEZONE_IA, consulte Exemplos de configuração de ciclo de vida.