Configurar uma política de ciclo de vida de bucket para anular uploads incompletos de várias partes - Amazon Simple Storage Service

Configurar uma política de ciclo de vida de bucket para anular uploads incompletos de várias partes

Recomendamos que você configure uma regra de ciclo de vida usando a ação AbortIncompleteMultipartUpload para minimizar os custos de armazenamento. Para obter mais informações sobre como anular um multipart upload, consulte Abortar um multipart upload.

O Amazon S3 é compatível com uma regra de ciclo de vida de bucket que pode ser usada para fazer com que o Amazon S3 interrompa multipart uploads que não forem concluídos dentro de um número especificado de dias após a inicialização. Quando um multipart upload não é concluído dentro do prazo especificado, ele se torna elegível para uma operação de anulação. O Amazon S3 interrompe o multipart upload e exclui todas as partes associadas a ele. Essa regra se aplica tanto aos uploads multiparte existentes quanto aos que você criar posteriormente.

Veja a seguir um exemplo de configuração de ciclo de vida que especifica uma regra com a ação AbortIncompleteMultipartUpload.

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

No exemplo, a regra não especifica um valor para o elemento Prefix (o prefixo do nome da chave de objeto). Portanto, a regra se aplica a todos os objetos no bucket para o qual você iniciou multipart uploads. Multipart uploads que foram iniciados e não concluídos dentro de sete dias tornam-se elegíveis para uma operação de anulação. A ação de anulação não tem efeito em multipart uploads concluídos.

Para obter mais informações sobre a configuração do ciclo de vida de bucket, consulte Gerenciar o ciclo de vida dos objetos.

nota

Se o multipart upload for concluído durante o período de dias especificado na regra, a ação de ciclo de vida AbortIncompleteMultipartUpload não se aplicará (ou seja, o Amazon S3 não executará nenhuma ação). Além disso, essa ação não se aplica a objetos. Nenhum objeto é excluído por essa ação do ciclo de vida. Além disso, você não incorrerá em cobranças de exclusão antecipada do ciclo de vida do S3 ao remover qualquer parte incompleta do upload de várias partes.

Para gerenciar multipart uploads incompletos automaticamente, use o console do S3 para criar uma regra de ciclo de vida para expirar bytes de multipart uploads incompletos em um bucket após determinado número de dias. O procedimento a seguir mostra como adicionar uma regra de ciclo de vida para excluir multipart uploads incompletos depois de 7 dias. Para obter mais informações sobre como adicionar regras de ciclo de vida, consulte Definir uma configuração do Ciclo de Vida do S3 em um bucket.

Como adicionar uma regra de ciclo de vida para anular multipart uploads incompletos há mais de 7 dias
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

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

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

  4. 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.

  5. Escolha o escopo da regra do ciclo de vida:

    • Para criar uma regra de ciclo de vida para todos os objetos com um prefixo específico, escolha Limit the scope of this rule using one or more filters (Limitar o escopo desta regra usando um ou mais filtros) e insira o prefixo no campo Prefix (Prefixo).

    • Para criar uma regra de ciclo de vida para todos os objetos no bucket, escolha This rule applies to all objects in the bucket (Esta regra se aplica a todos os objetos no bucket) e escolha I acknowledge that this rule applies to all objects in the bucket (Eu reconheço que essa regra se aplica a todos os objetos no bucket).

  6. Em Lifecycle rule actions (Ações da regra de ciclo de vida), selecione Delete expired object delete markers or incomplete multipart uploads (Excluir marcadores de exclusão de objetos expirados ou multipart uploads incompletos).

  7. Em Delete expired object delete markers or incomplete multipart uploads (Excluir marcadores de exclusão de objetos expirados ou multipart uploads incompletos), escolha Delete incomplete multipart uploads (Excluir multipart uploads incompletos).

  8. No campo Number of days (Número de dias), insira o número de dias depois dos quais os multipart uploads incompletos devem ser excluídos (por exemplo, 7 dias).

  9. Escolha Criar Regra.

O comando put-bucket-lifecycle-configuration da AWS Command Line Interface (AWS CLI) a seguir adiciona a configuração de ciclo de vida para o bucket especificado. Para usar esse comando, substitua user input placeholders por suas informações.

aws s3api put-bucket-lifecycle-configuration  \ --bucket amzn-s3-demo-bucket  \ --lifecycle-configuration filename-containing-lifecycle-configuration

O exemplo a seguir mostra como adicionar uma regra de ciclo de vida para anular multipart uploads incompletos usando a AWS CLI. Ele inclui um exemplo de configuração de ciclo de vida JSON para anular multipart uploads incompletos há mais de 7 dias.

Para usar os comandos da CLI neste exemplo, substitua user input placeholders pelas suas informações.

Como adicionar uma regra de ciclo de vida para anular multipart uploads incompletos
  1. Configure o AWS CLI. Consulte instruções em Developing with Amazon S3 using the AWS CLI na Referência de API do Amazon S3.

  2. Salve o seguinte exemplo de configuração de ciclo de vida em um arquivo (por exemplo, lifecycle.json). Esse exemplo de configuração especifica um prefixo vazio, portanto aplica-se a todos os objetos no bucket. Para restringir a configuração a um subconjunto de objetos, especifique um prefixo.

    { "Rules": [ { "ID": "Test Rule", "Status": "Enabled", "Filter": { "Prefix": "" }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 } } ] }
  3. Execute o comando da CLI a seguir para definir essa configuração de ciclo de vida em seu bucket.

    aws s3api put-bucket-lifecycle-configuration   \ --bucket amzn-s3-demo-bucket  \ --lifecycle-configuration file://lifecycle.json
  4. Para verificar se a configuração de ciclo de vida foi definida no bucket, recupere a configuração de ciclo de vida usando o comando get-bucket-lifecycle a seguir.

    aws s3api get-bucket-lifecycle  \ --bucket amzn-s3-demo-bucket
  5. Para excluir a configuração de ciclo de vida, use o comando delete-bucket-lifecycle a seguir.

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