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.
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.
- Versionamento ativado:
- 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.
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 |