Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Object Storage Service/ Referência de API/ As API/ Configurações avançadas de bucket/ Configuração de regras de ciclo de vida de um bucket
Atualizado em 2022-11-07 GMT+08:00

Configuração de regras de ciclo de vida de um bucket

Funções

Essa operação configura regras de ciclo de vida que podem excluir ou migrar objetos de um bucket em um horário especificado. Cenários de aplicação típicos:

  • Excluir periodicamente os ficheiros carregados. Alguns arquivos carregados periodicamente precisam ser mantidos apenas por uma semana ou um mês.
  • Excluir arquivos que são freqüentemente acessados dentro de um determinado período de tempo, mas raramente são acessados depois. Você pode arquivar esses arquivos e agendar o horário para a exclusão.
  • O tempo mínimo para a transição do armazenamento da caçamba para Quente ou Frio pode ser configurado. O valor varia de 24 a 8640.

Você pode executar essa operação para criar ou atualizar a configuração do ciclo de vida de um bucket.

Os objetos são excluídos permanentemente após a expiração de seu tempo de ciclo de vida, e os objetos excluídos não podem ser restaurados.

Para executar essa operação, você deve ter a permissão PutLifecycleConfiguration. Por padrão, somente o proprietário do bucket pode executar essa operação. O proprietário do bucket pode conceder a permissão a outros usuários configurando a política do bucket ou a política do usuário.

A configuração do ciclo de vida permite que o OBS exclua objetos e classes de armazenamento de objetos de transição em um horário programado. Para impedir que um usuário faça isso, as seguintes permissões concedidas ao usuário devem ser revogadas:

  • DeleteObject
  • DeleteObjectVersion
  • PutLifecycleConfiguration

Se você quiser proibir um usuário de definir a configuração do ciclo de vida do bucket, revogue a permissão PutLifecycleConfiguration do usuário.

Sintaxe da solicitação

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
PUT /?lifecycle HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Content-Length: length
Date: date
Authorization: authorization
Content-SHA256: SHA256
<?xml version="1.0" encoding="UTF-8"?> 
<LifecycleConfiguration> 
    <Rule> 
        <ID>id</ID> 
        <Prefix>prefix</Prefix> 
        <Status>status</Status> 
        <Expiration> 
            <Days>days</Days> 
        </Expiration> 
        <NoncurrentVersionExpiration> 
            <NoncurrentDays>days</NoncurrentDays> 
        </NoncurrentVersionExpiration> 
        <Transition>  
         <Days>30</Days>  
          <StorageClass>WARM</StorageClass>  
        </Transition>  
        <Transition>  
         <Days>60</Days>  
         <StorageClass>COLD</StorageClass>  
        </Transition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>30</NoncurrentDays>  
         <StorageClass>WARM</StorageClass>  
        </NoncurrentVersionTransition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>60</NoncurrentDays>  
         <StorageClass>COLD</StorageClass>  
        </NoncurrentVersionTransition>  
        <AbortIncompleteMultipartUpload>
            <DaysAfterInitiation>10</DaysAfterInitiation>
        </AbortIncompleteMultipartUpload>
    </Rule> 
</LifecycleConfiguration>

Parâmetros de solicitação

Esta solicitação não contém nenhum parâmetro.

Cabeçalhos de solicitação

Tabela 1 lista o cabeçalho da solicitação.

Tabela 1 Cabeçalhos de solicitação

Cabeçalho

Descrição

Obrigatório

Content-SHA256

Base64-encoded 256-bit SHA-256 digest of the message according to SHA.

Tipo: string

Exemplo: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=

Sim

Elementos de solicitação

Nesta solicitação, você precisa especificar a configuração do ciclo de vida no corpo da solicitação. A configuração do ciclo de vida pode ser carregada na forma de um arquivo XML com elementos descritos em Tabela 2.

  • Se o versionamento de um bucket estiver ativado ou suspenso, defina NoncurrentVersionTransition or NoncurrentVersionExpiration para controlar o ciclo de vida das versões históricas do objeto. O ciclo de vida de uma versão histórica depende do momento em que se torna uma versão histórica . (hora em que a versão é substituída por uma nova versão) e o valor do NoncurrentDays. Para exclusão de objetos, se NoncurrentDays for definida como 1, uma versão de objeto será excluída somente após se tornar histórica por um dia. Se a versão V1 do objeto A for criada na primeira data de um mês e a nova versão V2 for carregada na quinta data do mês, V1 se tornará uma versão histórica. Às 00:00 da sétima data do mês, V1 expirará. Se uma versão de objeto não atender às condições de exclusão, mas NoncurrentDays for definida como 1 e StorageClass for definida como WARM, a versão passará para a classe de armazenamento Warm um dia depois de se tornar uma versão histórica.Por exemplo, a versão V1 do objeto A é criada no primeiro dia de um mês e sua nova versão V2 é carregada no quinto dia do mês. Então V1 torna-se uma versão histórica. Um dia depois, ou seja, às 0 horas do sétimo dia, V1 transita para a classe de armazenamento quente. A eliminação ou transição do objecto após o tempo de expiração pode ser adiada. O atraso é de 48 horas.
  • Os objetos são processados de acordo com os procedimentos a seguir, se suas versões mais recentes atenderem à regra de expiração e o versionamento estiver ativado ou suspenso para o bucket.
    • Versionamento ativado:

      Se a versão mais recente do objeto não tiver o DeleteMarker, o objeto gerará um novo DeleteMarker.

      Se o objeto da versão mais recente tiver o DeleteMarker e o objeto tiver apenas essa versão, essa versão será excluída.

      Se o objeto da versão mais recente tiver o DeleteMarker e o objeto tiver outras versões, todas as versões do objeto permanecerão inalteradas.

    • Controle de versão suspenso:

      Se a versão mais recente do objeto não tiver o DeleteMarker e não for a versão nula, o objeto gerará um novo DeleteMarker para a versão nula.

      Se a última versão do objeto não tiver o DeleteMarker mas for a versão nula, essa versão nula será substituída por um novo DeleteMarker gerado para a versão nula.

      Se o objeto da versão mais recente tiver o DeleteMarker e o objeto tiver apenas essa versão, essa versão será excluída.

      Se o objeto da versão mais recente tiver o DeleteMarker e o objeto tiver outras versões, todas as versões do objeto permanecerão inalteradas.

  • A seguir, lista o processamento quando o versionamento é ativado ou suspenso para um bucket e os objetos das versões mais recentes atendem às regras de transição:
  • Se a versão mais recente do objeto tiver o DeleteMarker, a classe de armazenamento dessa versão não será transferida.
  • Se a versão mais recente do objeto não tiver o DeleteMarker e atender à regra de transição, a classe de armazenamento dessa versão será transferida.
Tabela 2 Elementos de resposta para configuração do ciclo de vida

Nome

Descrição

Obrigatório

Date

Especifica que o OBS executa regras de ciclo de vida para objetos antes da data especificada. A data deve estar em conformidade com o formato ISO8601 e a hora deve estar em conformidade com o formato UTC de 00:00:00. Por exemplo: 2018-01-01T00:00:00.000Z, que indica que os objetos cuja última hora de modificação é anterior a 2018-01-01T00:00:00.000Z são excluídos ou transferidos para outras classes de armazenamento. Objetos cujo último tempo de modificação é igual ou posterior ao tempo especificado não são excluídos ou despejados.

Tipo: string

Nó ancestral: Expiração, Transição

Obrigatório se o elemento Days estiver ausente.

Days

Especifica o número de dias (desde a atualização mais recente até a versão mais recente do objeto) após os quais a regra de ciclo de vida entra em vigor.

Tipo: inteiro positivo

Nó ancestral: Expiração, Transição

Obrigatório se o elemento Date estiver ausente.

StorageClass

A classe de armazenamento para a qual o objeto é transferido.

Tipo: string

Opções de valor: WARM ou COLD

Nó ancestral: Transition, NoncurrentVersionTransition

Necessário se o elemento Transition ou NoncurrentVersionTransition estiver presente.

Transition

Tempo de transição e a classe de armazenamento de objetos após a transição (válido apenas para a versão mais recente do objeto).

Tipo: XML

Nó filhos: Data ou Dias StorageClass

Nó ancestral: Regra

Necessário se o elemento NoncurrentVersionTransition, Expiration, AbortIncompleteMultipartUpload, ou NoncurrentVersionExpiration estiver ausente.

Expiration

Contêiner para a regra de expiração do objeto (aplicável somente às versões mais recentes dos objetos).

Tipo: XML

Nó filhos: Data ou Dias

Nó ancestral: Regra

Necessário se Transition, NoncurrentVersionTransition, AbortIncompleteMultipartUpload, or NoncurrentVersionExpiration estiver ausente.

ID

Identificador único de uma regra. O valor pode conter no máximo 255 caracteres.

Tipo: string

Nó ancestral: Regra

Não

LifecycleConfiguration

Container para regras de ciclo de vida. Você pode adicionar várias regras. O tamanho total das regras não pode exceder 20 KB.

Tipo: XML

Nó filhos: Regra

Nó do antepassado: nenhum

Sim

NoncurrentDays

Número de dias em que a regra especificada entra em vigor após o objeto se tornar uma versão histórica (aplicável apenas à versão histórica de um objeto).

Tipo: inteiro positivo

Nó ancestral: NoncurrentVersionExpiration, NoncurrentVersionTransition

Necessário se o elemento NoncurrentVersionExpiration ou NoncurrentVersionTransition estiver presente.

NoncurrentVersionTransition

Tempo de transição de versões de objetos históricos e a classe de armazenamento de objetos após a transição.

Tipo: XML

Nó filhos: NoncurrentDays, StorageClass

Nó ancestral: Regra

Obrigatório se o elemento Transition, Expiration, AbortIncompleteMultipartUpload, ou NoncurrentVersionExpiration estiver ausente.

NoncurrentVersionExpiration

Contêiner para o tempo de expiração das versões históricas dos objetos. Se o versionamento estiver ativado ou suspenso para um bucket, você pode definir NoncurrentVersionExpiration para excluir versões históricas de objetos que correspondam à regra de ciclo de vida (aplicável somente às versões históricas de objetos).

Tipo: XML

Nó filhos: NoncurrentDays

Nó ancestral: Regra

Não

AbortIncompleteMultipartUpload

Contêiner para a regra de tempo de expiração aplicada às tarefas de upload de várias partes que não são mescladas.

Tipo: XML

Nó filhos: DaysAfterInitiation

Nó ancestral: Regra

Obrigatório se o elemento Transition, Expiration, NoncurrentVersionExpiration, ou NoncurrentVersionTransition estiver ausente.

DaysAfterInitiation

Indica quando uma regra de ciclo de vida entrará em vigor após a inicialização de uma tarefa de carregamento de várias partes.

Tipo: inteiro positivo

Nó ancestral: AbortIncompleteMultipartUpload

Obrigatório se o elemento AbortIncompleteMultipartUpload estiver ausente.

Prefix

Prefixo do nome do objeto que identifica um ou mais objetos aos quais a regra se aplica.

Tipo: string

Nó ancestral: Regra

Sim

Rule

Container para uma regra de ciclo de vida específica.

Tipo: recipiente

Nó ancestral: LifecycleConfiguration

Sim

Status

Indica se a regra está ativada.

Tipo: string

Nó ancestral: Regra

Opções de valor: Ativado, Desativado

Sim

Sintaxe da resposta

1
2
3
HTTP/1.1 status_code
Date: date
Content-Length: length

Cabeçalhos de resposta

A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.

Elementos de resposta

Esta resposta não contém elementos.

Respostas de erro

Nenhuma resposta de erro especial é retornada. Para obter detalhes sobre respostas de erro, consulte Tabela 2.

Solicitação de exemplo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
PUT /?lifecycle HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-SHA256: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=
Content-Length: 919

<?xml version="1.0" encoding="utf-8"?>
<LifecycleConfiguration> 
  <Rule> 
    <ID>delete-2-days</ID>  
    <Prefix>test/</Prefix>  
    <Status>Enabled</Status>  
    <Expiration> 
      <Days>70</Days> 
    </Expiration>  
    <NoncurrentVersionExpiration> 
      <NoncurrentDays>70</NoncurrentDays> 
    </NoncurrentVersionExpiration>
    <Transition> 
      <Days>30</Days>  
      <StorageClass>WARM</StorageClass> 
    </Transition>  
    <Transition> 
      <Days>60</Days>  
      <StorageClass>COLD</StorageClass> 
    </Transition>  
    <NoncurrentVersionTransition> 
      <NoncurrentDays>30</NoncurrentDays>  
      <StorageClass>WARM</StorageClass> 
    </NoncurrentVersionTransition>  
    <NoncurrentVersionTransition> 
      <NoncurrentDays>60</NoncurrentDays>  
      <StorageClass>COLD</StorageClass> 
    </NoncurrentVersionTransition> 
    <AbortIncompleteMultipartUpload>
        <DaysAfterInitiation>10</DaysAfterInitiation>
    </AbortIncompleteMultipartUpload>
  </Rule>
</LifecycleConfiguration>

Resposta de exemplo

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643670AC06E7B9A7767921
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSvK6z8HV6nrJh49gsB5vqzpgtohkiFm
Date: WED, 01 Jul 2015 03:05:34 GMT
Content-Length: 0