Todos os produtos
Search
Central de documentação

Object Storage Service:PutBucketLifecycle

Última atualização: Jul 03, 2026

Configura regras de ciclo de vida para um bucket. Use a operação PutBucketLifecycle para converter periodicamente as classes de armazenamento de objetos ou excluir objetos e partes expirados com base na hora da última modificação ou do último acesso, reduzindo os custos de armazenamento.

Observações

  • A operação PutBucketLifecycle usa semântica de sobrescrita. Para adicionar uma nova regra (Rule2) mantendo uma regra existente (Rule1):

    1. Chame GetBucketLifecycle para consultar a configuração existente da Rule1.

    2. Adicione a Rule2 à configuração existente.

    3. Chame PutBucketLifecycle com a Rule1 e a Rule2 para atualizar o bucket.

  • As regras de ciclo de vida podem expirar objetos e partes de uploads multipart incompletos.

  • As regras podem ter como base a hora do último acesso ou da última modificação.

Permissões

Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não têm permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de políticas do RAM ou Bucket Policy.

API

Action

Descrição

PutBucketLifecycle

oss:PutBucketLifecycle

Configura regras de ciclo de vida para um bucket.

Sintaxe da solicitação

PUT /?lifecycle HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Authorization: SignatureValue 
Host: BucketName.oss.aliyuncs.com
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>RuleID</ID>
    <Prefix>Prefix</Prefix>
    <Status>Status</Status>
    <Expiration>
      <Days>Days</Days>
    </Expiration>
    <Transition>
      <Days>Days</Days>
      <StorageClass>StorageClass</StorageClass>
    </Transition>
    <AbortMultipartUpload>
      <Days>Days</Days>
    </AbortMultipartUpload>
  </Rule>
</LifecycleConfiguration>

Cabeçalhos da solicitação

Cabeçalho

Tipo

Obrigatório

Exemplo

Descrição

x-oss-allow-same-action-overlap

String

Não

true

Especifica se prefixos sobrepostos são permitidos. Valores válidos:

  • true: Prefixos sobrepostos são permitidos.

  • false: Prefixos sobrepostos não são permitidos.

Esta solicitação também usa cabeçalhos comuns, como Date e Authorization, descritos em Cabeçalhos HTTP comuns.

Elementos da solicitação

Elemento

Tipo

Obrigatório

Exemplo

Descrição

LifecycleConfiguration

Container

Sim

N/A

Contêiner das configurações de ciclo de vida. Suporta até 1.000 regras.

Nós filhos: Rule

Nós pais: nenhum

Rule

Container

Sim

N/A

Contêiner de uma regra de ciclo de vida. O período entre a expiração e a exclusão deve ser superior ao período entre a expiração e a conversão de classe de armazenamento para IA ou Archive.

Nós filhos: ID, Prefix, Status e Expiration

Nós pais: LifecycleConfiguration

ID

String

Não

rule1

ID da regra de ciclo de vida. Comprimento máximo: 255 caracteres. Se não especificado, o OSS gera um ID exclusivo automaticamente.

Nós filhos: nenhum

Nós pais: Rule

Prefix

String

Não

tmp/

Prefixo do nome do objeto ao qual esta regra se aplica. Os prefixos entre regras não podem se sobrepor.

  • Se especificado, a regra se aplica apenas a objetos com o prefixo correspondente.

  • Se não especificado, a regra se aplica a todos os objetos no bucket.

Nós filhos: nenhum

Nós pais: Rule

Status

String

Sim

Enabled

Especifica se a regra está ativada. Valores válidos:

  • Enabled: O OSS executa a regra periodicamente.

  • Disabled: O OSS ignora a regra.

Nós pais: Rule

Expiration

Container

Não

N/A

Operação de exclusão executada nos objetos correspondentes quando eles expiram. Em buckets com versionamento, isso se aplica apenas às versões atuais.

O período entre a expiração e a exclusão deve ser superior ao período entre a expiração e a conversão de classe de armazenamento para IA ou Archive.

Nós filhos: Days, CreatedBeforeDate ou ExpiredObjectDeleteMarker

Nós pais: Rule

Days

Inteiro positivo

Days ou CreatedBeforeDate é obrigatório

1

Número de dias após a data da última modificação antes que a regra entre em vigor.

Se IsAccessTime for true, a regra entrará em vigor com base nos dias após o último acesso.

Nós pais: Expiration ou AbortMultipartUpload

CreatedBeforeDate

String

Days ou CreatedBeforeDate é obrigatório

2002-10-11T00:00:00.000Z

Data anterior à qual a regra se aplica. O OSS executa a operação em objetos cuja última modificação ocorreu antes desta data. Formato: yyyy-MM-ddT00:00:00.000Z.

O horário deve ser 00:00:00 UTC no formato ISO 8601.

Nós pais: Expiration ou AbortMultipartUpload

ExpiredObjectDeleteMarker

String

Não

true

Especifica se marcadores de exclusão expirados devem ser removidos automaticamente. Valores válidos:

  • true: Marcadores de exclusão expirados são removidos automaticamente. Se você definir este elemento como true, não poderá especificar o elemento Days ou CreatedBeforeDate.

  • false: Marcadores de exclusão expirados não são removidos automaticamente. Se você definir este elemento como false, deverá especificar o elemento Days ou CreatedBeforeDate.

Nós pais: Expiration

Transition

Container

Não

N/A

Conversão de classe de armazenamento para objetos correspondentes quando eles expiram.

Objetos Standard podem fazer transição para IA, Archive ou Cold Archive. O período de transição para Archive deve ser superior ao período de transição para IA. Por exemplo, se os objetos fizerem transição para IA após 30 dias, eles deverão fazer transição para Archive após mais de 30 dias.

Nós pais: Rule

Nós filhos: Days, CreatedBeforeDate e StorageClass

Importante
Importante

Days ou CreatedBeforeDate é obrigatório.

StorageClass

String

Sim, se Transition ou NoncurrentVersionTransition for especificado

IA

Classe de armazenamento para a qual os objetos são alterados. Valores válidos:

  • IA

  • Archive

  • ColdArchive

  • DeepColdArchive

Importante

Você pode converter a classe de armazenamento de objetos em um bucket IA apenas para Archive ou Cold Archive.

Nós pais: Transition

AbortMultipartUpload

Container

Não

N/A

Operação para excluir partes de uploads multipart incompletos quando elas expiram.

Nós filhos: Days ou CreatedBeforeDate

Nós pais: Rule

Tag

Container

Não

N/A

Tag dos objetos aos quais a regra de ciclo de vida se aplica. É possível especificar várias tags.

Nós pais: Rule

Nós filhos: Key e Value

Key

String

Sim, se o elemento Tag for especificado

TagKey1

Chave da tag especificada para os objetos.

Nós pais: Tag

Value

String

Sim, se o elemento Tag for especificado

TagValue1

Valor da tag especificada para os objetos.

Nós pais: Tag

NoncurrentVersionExpiration

Container

Não

N/A

Operação para excluir versões anteriores de objetos correspondentes quando elas expiram.

Nós filhos: NoncurrentDays

NoncurrentVersionTransition

Container

Não

N/A

Conversão de classe de armazenamento para versões anteriores de objetos correspondentes quando elas expiram. Versões anteriores podem fazer transição para IA ou Archive.

O período de transição para Archive deve ser superior ao período de transição para IA para versões anteriores.

Nós filhos: NoncurrentDays e StorageClass

NoncurrentDays

String

Sim, se NoncurrentVersionExpiration ou NoncurrentVersionTransition for especificado

10

Número de dias após os objetos se tornarem versões anteriores antes que a regra entre em vigor.

Se IsAccessTime for true, NoncurrentDays entrará em vigor com base nos dias após o último acesso.

Nós pais: NoncurrentVersionTransition e NoncurrentVersionExpiration

IsAccessTime

String

Não

true

Especifica se a regra de ciclo de vida se aplica aos objetos com base na hora do último acesso. Valores válidos:

  • true: A regra se aplica aos objetos com base na hora do último acesso.

  • false (padrão): A regra se aplica aos objetos com base na hora da última modificação.

Nós pais: Transition ou NoncurrentVersionTransition

ReturnToStdWhenVisit

String

Não

false

Especifica se objetos não Standard devem ser convertidos de volta para Standard mediante acesso. Entra em vigor apenas quando IsAccessTime é true. Valores válidos:

  • true: altera a classe de armazenamento dos objetos para Standard.

  • false: não altera a classe de armazenamento dos objetos para Standard.

Nós pais: Transition ou NoncurrentVersionTransition

AllowSmallFile

String

Não

false

Especifica se objetos menores que 64 KB devem ser convertidos para IA, Archive ou Cold Archive com base na hora do último acesso. Valores válidos:

  • true: converte objetos menores que 64 KB. O tamanho mínimo faturável é 64 KB — objetos abaixo de 64 KB são faturados como 64 KB. Isso pode aumentar as taxas de armazenamento.

  • false: não altera a classe de armazenamento de objetos menores que 64 KB.

Nós pais: Transition ou NoncurrentVersionTransition

Filter

Container

Não

N/A

Contêiner do elemento Not usado para filtrar objetos. Suporta no máximo um nó Not.

Nós pais: Rule

Nós filhos: Not

Not

Container

Não

N/A

Condição de exclusão para a regra de ciclo de vida. Apenas um nó Not é permitido por Filter.

Nós pais: Filter

Nós filhos: Prefix e Tag

Prefix

String

Sim

tmp/not/

Prefixo do nome do objeto excluído da regra de ciclo de vida. Não pode estar vazio.

  • Se o Prefixo da Regra estiver definido, o Prefixo Not deve começar com ele. Por exemplo, se o Prefixo da Regra for dir, o Prefixo Not deve começar com dir, como dir1 ou dir2.

  • Se nenhuma tag for especificada no nó Not, o Prefixo Not deve ser diferente do Prefixo da Regra.

Nós pais: Not

Nós filhos: nenhum

Tag

Container

Não

N/A

Tag dos objetos excluídos. Suporta no máximo uma tag.

ObjectSizeGreaterThan

Inteiro positivo

Não

500

Tamanho mínimo do objeto ao qual esta regra se aplica. Especifique apenas um valor ou deixe este elemento vazio. Se tanto este parâmetro quanto o parâmetro ObjectSizeLessThan estiverem definidos, o sistema verificará se o tamanho do objeto está dentro do intervalo especificado — maior que o tamanho mínimo e menor que o tamanho máximo.

Este parâmetro e o parâmetro AllowSmallFile são mutuamente exclusivos.

Nó pai: Filter

Nó filho: nenhum

ObjectSizeLessThan

Inteiro positivo

Não

64000

Tamanho máximo do objeto ao qual esta regra se aplica. Especifique apenas um valor ou deixe este elemento vazio. Se tanto este parâmetro quanto o parâmetro ObjectSizeGreaterThan estiverem definidos, o sistema verificará se o tamanho do objeto está dentro do intervalo especificado — maior que o tamanho mínimo e menor que o tamanho máximo.

Este parâmetro e o parâmetro AllowSmallFile são mutuamente exclusivos.

Nó pai: Filter

Nó filho: nenhum

Cabeçalhos da resposta

A resposta contém apenas cabeçalhos de resposta comuns. Para obter mais informações, consulte Cabeçalhos de resposta comuns.

Exemplos

Exemplos de solicitações

Exemplo 1: Configurar uma regra de ciclo de vida baseada na hora da última modificação apenas para converter a classe de armazenamento de objetos

Configure uma regra de ciclo de vida para converter objetos com o prefixo log para IA 30 dias após a última modificação:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Mon, 6 May 2019 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Transition>
      <Days>30</Days>
      <StorageClass>IA</StorageClass>
    </Transition>    
  </Rule>
</LifecycleConfiguration>

Exemplo 2: Configurar uma regra de ciclo de vida baseada na hora da última modificação apenas para excluir objetos

Configure uma regra de ciclo de vida para excluir objetos com o prefixo log 90 dias após a última modificação:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <Days>90</Days>
    </Expiration>    
 </Rule>
</LifecycleConfiguration>

Exemplo 3: Configurar uma regra de ciclo de vida baseada na hora da última modificação para converter a classe de armazenamento de objetos e excluir objetos

Configure uma regra de ciclo de vida para converter objetos com o prefixo log para IA após 30 dias, depois para Archive após 60 dias e excluí-los após 3.600 dias:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Transition>
      <Days>30</Days>
      <StorageClass>IA</StorageClass>
    </Transition>
    <Transition>
      <Days>60</Days>
      <StorageClass>Archive</StorageClass>
    </Transition>
    <Expiration>
      <Days>3600</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>

Exemplo 4: Configurar uma regra de ciclo de vida baseada na hora da última modificação para excluir versões anteriores de objetos e remover marcadores de exclusão

Configure uma regra de ciclo de vida para excluir versões anteriores 5 dias após elas se tornarem não atuais e remover marcadores de exclusão expirados:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix></Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
    </Expiration>
    <NoncurrentVersionExpiration>
      <NoncurrentDays>5</NoncurrentDays>
    </NoncurrentVersionExpiration>    
  </Rule>
</LifecycleConfiguration>

Exemplo 5: Configurar uma regra de ciclo de vida baseada na hora da última modificação para converter a classe de armazenamento de objetos e excluir objetos, excluindo objetos cujos nomes contenham prefixos específicos ou objetos que possuam tags específicas

Configure uma regra de ciclo de vida para converter objetos para Archive após 30 dias e excluí-los após 100 dias, excluindo objetos com o prefixo log e a tag key1=value1 usando o filtro Not:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix></Prefix>
    <Status>Enabled</Status>
    <Filter>
      <Not>
        <Prefix>log</Prefix>
        <Tag><Key>key1</Key><Value>value1</Value></Tag>
      </Not>
    </Filter>    
    <Transition>
      <Days>30</Days>
      <StorageClass>Archive</StorageClass>
    </Transition>
    <Expiration>
      <Days>100</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>

Exemplo 6: Configurar uma regra de ciclo de vida baseada na hora do último acesso para converter a classe de armazenamento de objetos

Configure uma regra de ciclo de vida para converter objetos com o prefixo log para IA 30 dias após o último acesso e restaurá-los para Standard no próximo acesso:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>log/</Prefix>
    <Status>Enabled</Status>
    <Transition>
      <Days>30</Days>
      <StorageClass>IA</StorageClass>
      <IsAccessTime>true</IsAccessTime>
      <ReturnToStdWhenVisit>true</ReturnToStdWhenVisit>
    </Transition>
  </Rule>
</LifecycleConfiguration>

Exemplo 7: Configurar uma regra de ciclo de vida baseada na hora da última modificação para excluir partes

Configure uma regra de ciclo de vida para excluir partes de uploads multipart incompletos com mais de 30 dias:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>rule</ID>
    <Prefix>/</Prefix>
    <Status>Enabled</Status>    
    <AbortMultipartUpload>
      <Days>30</Days>
    </AbortMultipartUpload>
 </Rule>
</LifecycleConfiguration>

Exemplo 8: Configurar uma regra de ciclo de vida baseada na hora da última modificação para excluir objetos cujos nomes contenham prefixos sobrepostos

Configure regras de ciclo de vida com prefixos sobrepostos para excluir objetos em dir1/ após 180 dias e em dir1/dir2/ após 30 dias:

PUT /?lifecycle HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 336
Date: Thu, 17 Apr 2025 15:23:20 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
x-oss-allow-same-action-overlap: true
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
  <Rule>
    <ID>Rule1</ID>
    <Prefix>dir1/</Prefix>
    <Status>Status</Status>
    <Expiration>
      <Days>180</Days>
    </Expiration>
  </Rule>
  <Rule>
    <ID>Rule2</ID>
    <Prefix>dir1/dir2/</Prefix>
    <Status>Status</Status>
    <Expiration>
      <Days>30</Days>
    </Expiration>
  </Rule>
</LifecycleConfiguration>
Nota

Se o cabeçalho x-oss-allow-same-action-overlap estiver definido como false, o OSS detectará que os objetos no subdiretório dir1/dir2/ correspondem a duas regras de exclusão simultaneamente. Nesse caso, o OSS rejeita as duas regras de exclusão e o erro Overlap for same action type Expiration é relatado.

Exemplos de respostas

HTTP/1.1 200 OK
x-oss-request-id: 7D3435J59A9812BAD56E
Date: Mon, 6 May 2019 15:23:20 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS

SDKs do OSS

Chame PutBucketLifecycle usando os seguintes SDKs do OSS:

ossutil

Para obter informações sobre o comando ossutil correspondente à operação PutBucketLifecycle, consulte put-bucket-lifecycle.

Referência

Para obter mais informações sobre regras de ciclo de vida, consulte Ciclo de vida.

Códigos de erro

Código de erro

Código de status HTTP

Descrição

InvalidArgument

400

Possíveis causas:

  • Em um bucket Standard, o tempo de transição para Archive deve ser posterior ao tempo de transição para IA.

  • O período entre a expiração e a exclusão deve ser superior ao período entre a expiração e a conversão de classe de armazenamento.

AccessDenied

403

Você não possui a permissão oss:PutBucketLifecycle necessária para configurar regras de ciclo de vida.

MalforedXML

400

O erro MalformedXML é retornado quando a validação XML da regra de ciclo de vida falha. Por exemplo, configurar uma regra baseada na hora do último acesso sem ativar o rastreamento de acesso aciona este erro.