A frequência de acesso a dados diminui ao longo do tempo. O gerenciamento de ciclo de vida permite criar regras que fazem a transição automática de objetos para classes de armazenamento de menor custo (como Infrequent Access ou Archive) ou os excluem após um período especificado, reduzindo custos de armazenamento sem intervenção manual.
Como funciona
O gerenciamento de ciclo de vida usa regras definidas pelo usuário para automatizar operações em objetos de um bucket. O OSS carrega uma nova regra em até 24 horas após a criação. Após o carregamento, o OSS executa as regras correspondentes em um horário fixo diariamente, normalmente após 00:00 (UTC) do dia seguinte (08:00 UTC+8).
Uma regra de ciclo de vida consiste em três partes principais:
-
Objetos a gerenciar: filtre os objetos de destino por prefixo de objeto (Prefix), tag de objeto (Tag) ou tamanho de objeto (ObjectSize).
As regras de ciclo de vida não oferecem suporte a caracteres curinga, correspondência por sufixo ou expressões regulares.
-
Ações a executar: defina o que fazer com os objetos filtrados:
-
Transição de classe de armazenamento (Transition): faz a transição de objetos para classes de armazenamento de menor custo, como Infrequent Access, Archive ou Cold Archive.
-
Expiração e exclusão (Expiration): exclui objetos após atingirem um período de ciclo de vida especificado.
-
Limpeza de fragmentos (AbortMultipartUpload): exclui automaticamente partes de uploads multipart incompletos após um tempo especificado.
-
-
Políticas de acionamento: definem quando as ações são acionadas:
-
Hora da última modificação (Last-Modified-Time): faz a transição ou exclui objetos com base na hora da última modificação. Adequado para dados com um ciclo de vida claro, como logs e backups.
-
Hora do último acesso (Last-Access-Time): após ativar o rastreamento de acesso, faz a transição de objetos com base na hora do último acesso. Adequado para padrões de acesso imprevisíveis (como uma biblioteca de materiais). Dados frios são rebaixados automaticamente e restaurados quando acessados.
-
Todos os parâmetros configuráveis estão documentados em Elementos de configuração de ciclo de vida.
Cenários de configuração
Limpar arquivos de log expirados automaticamente
Os servidores fazem upload de logs diariamente em um diretório designado. Use uma regra baseada na hora da última modificação para excluir todos os objetos em um bucket após um número especificado de dias, liberando armazenamento e reduzindo custos.
Usar camadas de armazenamento automáticas para dados quentes e frios
Para dados com frequência de acesso incerta (imagens de sites, vídeos, documentos), ative o rastreamento de acesso e use uma regra de ciclo de vida baseada na hora do último acesso para implementar camadas de dados inteligentes. O sistema faz a transição de dados frios para classes de armazenamento de menor custo com base nos padrões de acesso reais.
Limpar versões anteriores automaticamente
Com o versionamento ativado, substituições e exclusões são salvas como versões anteriores. Quando um bucket acumula muitas versões anteriores ou marcadores de exclusão expirados, use uma regra de ciclo de vida baseada na hora da última modificação em conjunto com o versionamento para reduzir custos de armazenamento. Isso reduz custos e melhora o desempenho da listagem de objetos.
Limpar fragmentos de uploads multipart automaticamente
Uploads multipart interrompidos deixam partes não mescladas que continuam gerando cobranças. Configure uma regra de ciclo de vida para limpar partes incompletas após um tempo especificado.
Além dos cenários anteriores, você pode implementar políticas de gerenciamento de dados mais detalhadas. Para mais informações, consulte Exemplos de configuração de ciclo de vida. Combine diferentes regras para obter um gerenciamento detalhado dos dados no seu bucket conforme necessário.
Várias regras de ciclo de vida
Várias regras de ciclo de vida dependem de dois mecanismos: prioridade de execução de regras e o mecanismo de substituição de configuração.
Prioridade de execução de regras
Um bucket pode ter várias regras de ciclo de vida independentes. Quando um objeto corresponde a várias regras, a ação final é determinada por todos os resultados correspondentes.
Quando várias regras correspondem ao mesmo objeto ao mesmo tempo, elas são executadas na seguinte ordem de prioridade: Excluir objeto > Transição para Deep Cold Archive > Transição para Cold Archive > Transição para Archive > Transição para Infrequent Access > Transição para Standard.
A ação de exclusão sempre tem prioridade mais alta do que as transições de classe de armazenamento. Defina o tempo das regras de exclusão como maior que o tempo das regras de transição. Isso evita que objetos sejam excluídos antes que a transição seja concluída.
Exemplo de execução
Suponha que você especifique as duas regras de ciclo de vida a seguir e ambas correspondam ao mesmo objeto.
-
Regra 1: especifica que objetos com última modificação há mais de 365 dias são transferidos para a classe de armazenamento Infrequent Access.
-
Regra 2: especifica que objetos com última modificação há mais de 365 dias são excluídos.
Resultado: o objeto correspondente às regras será excluído após mais de 365 dias da hora da última modificação.
Mecanismo de substituição de configuração
O console lida com a mesclagem automaticamente, evitando substituição acidental. No entanto, ao usar ossutil, SDKs ou a API, cada chamada PutBucketLifecycle substitui completamente todas as configurações de ciclo de vida existentes. Enviar uma nova regra sem incluir as existentes exclui essas regras.
Exemplo
Para adicionar uma nova regra às regras existentes, execute as seguintes etapas:
-
Recupere todas as regras de ciclo de vida efetivas no momento (por exemplo, Regra 1).
-
Adicione a nova regra (por exemplo, Regra 2).
-
Reenvie a configuração completa que inclui todas as regras (Regra 1 + Regra 2).
Observação: se você enviar apenas a configuração contendo a nova regra (Regra 2) sem incluir a regra existente (Regra 1), a Regra 1 será excluída e não estará mais em vigor.
Implantação em produção
Para implantar o gerenciamento de ciclo de vida com segurança em produção:
-
Teste antes de implantar: crie regras em um bucket de teste primeiro. Verifique o comportamento antes de aplicá-las em produção.
-
Use regras de exclusão com cautela: defina o prefixo com precisão para evitar a exclusão acidental de dados importantes.
-
Ative o versionamento como proteção: para dados críticos, ative o versionamento para que objetos excluídos acidentalmente por uma regra de ciclo de vida possam ser recuperados de uma versão anterior.
-
Use transições em camadas para evitar taxas extras: verifique se o tempo de acionamento de cada estágio subsequente excede a soma do tempo de acionamento do estágio anterior e sua duração mínima de armazenamento. Isso evita taxas de transições prematuras.
-
Exemplo incorreto: Standard
30 days-> Infrequent Access40 days-> Archive Storage. O objeto permanece em IA por apenas 10 dias (< 30 days) antes de fazer a transição novamente, gerando uma taxa. -
Exemplo correto: Standard
30 days-> Infrequent Access90 days-> Archive Storage. O objeto permanece em IA por 60 dias (atendendo ao mínimo de 30 dias) antes de fazer a transição para Archive no dia 90.
-
Faturamento
A configuração de regras de ciclo de vida é gratuita. As taxas são aplicadas quando as regras são executadas e alteram o estado de armazenamento.
-
Taxas de solicitação: cada transição de classe de armazenamento, exclusão de objeto ou exclusão de parte gera uma solicitação do tipo
Put. As taxas são cobradas por solicitação. Os detalhes de faturamento estão em Descrição de taxas de ciclo de vida.Para buckets com muitos arquivos pequenos, as taxas de solicitação podem ser significativas. Avalie antes de configurar regras.
-
Taxas de armazenamento: após a transição, os objetos são cobrados pela taxa da nova classe de armazenamento.
nullClasses de armazenamento como Infrequent Access, Archive e Cold Archive possuem requisitos de duração mínima de armazenamento (por exemplo, 30 dias para Infrequent Access e 60 dias para Archive). Se uma regra de ciclo de vida excluir ou fizer a transição de um objeto antes que a duração mínima de armazenamento seja atingida, você deverá pagar pela duração restante do armazenamento. Para evitar taxas de capacidade condicional para armazenamento inferior à duração especificada devido a transições ou exclusões, consulte Como evitar taxas de capacidade para armazenamento inferior à duração especificada?. Verifique se a duração mínima de armazenamento foi atingida antes de fazer a transição ou exclusão.
-
Taxas de recuperação de dados: as regras de ciclo de vida em si não geram taxas de recuperação de dados. No entanto, acessar objetos em classes de armazenamento como Infrequent Access ou Archive gera taxas de recuperação.
-
A leitura direta de um objeto IA gera taxas de recuperação de dados.
-
A leitura de um objeto Archive gera taxas de capacidade de recuperação de dados para acesso em tempo real.
-
A restauração de um objeto Archive gera taxas de solicitação do tipo Put e taxas de capacidade de recuperação.
-
A restauração de um objeto Cold Archive ou Deep Cold Archive gera taxas de solicitação de recuperação, taxas de capacidade de recuperação e taxas de capacidade restaurada temporária.
nullPara objetos Cold Archive e Deep Cold Archive, a taxa varia conforme a prioridade de recuperação escolhida. Uma prioridade mais alta resulta em uma taxa mais alta.
-



