Alguns dados enviados ao Object Storage Service (OSS) podem não ser acessados com frequência, mas ainda precisam ser mantidos em armazenamento frio para atender a requisitos de conformidade ou arquivamento. Além disso, você pode querer excluir em lote dados que não são mais necessários para reduzir custos de armazenamento. Nessas situações, configure regras de ciclo de vida com base na data da última modificação para converter periodicamente dados quentes em dados frios ou excluir objetos desnecessários.
Observações de uso
Antes de configurar regras de ciclo de vida com base na data da última modificação dos objetos, familiarize-se com este recurso. Para mais informações, consulte Lifecycle rules based on the last modified time.
Este tópico usa o endpoint público da região China (Hangzhou). Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para obter detalhes sobre as regiões e os endpoints compatíveis, consulte Regions and endpoints.
Este tópico mostra como criar uma instância OSSClient com um endpoint do OSS. Para configurações alternativas, como usar um domínio personalizado ou autenticar com credenciais do Security Token Service (STS), consulte Create an OssClient.
Você precisa da permissão
oss:PutBucketLifecyclepara definir regras de ciclo de vida, da permissãooss:GetBucketLifecyclepara visualizá-las e da permissãooss:DeleteBucketLifecyclepara excluí-las. Para obter mais informações, consulte Grant custom access policies to a RAM user.
Configure regras de ciclo de vida para um bucket
O código de exemplo a seguir mostra como configurar regras de ciclo de vida com base na data da última modificação para um bucket chamado examplebucket. Para modificar regras de ciclo de vida, siga as instruções em How do I change the configurations of one or more lifecycle rules?
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) Endpoint is used as an example. Replace it with the actual Endpoint.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the bucket name.
bucket = client.get_bucket('examplebucket')
# Set the lifecycle rules.
bucket.lifecycle = [
Aliyun::OSS::LifeCycleRule.new(
:id => 'rule1', :enable => true, :prefix => 'foo/', :expiry => 3),
Aliyun::OSS::LifeCycleRule.new(
:id => 'rule2', :enable => false, :prefix => 'bar/', :expiry => Date.new(2016, 1, 1))
]
Consulte as regras de ciclo de vida de um bucket
O código de exemplo a seguir mostra como consultar as regras de ciclo de vida configuradas para o examplebucket:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) Endpoint is used as an example. Replace it with the actual Endpoint.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the bucket name.
bucket = client.get_bucket('examplebucket')
# View the lifecycle rules.
rules = bucket.lifecycle
puts rules
Exclua todas as regras de ciclo de vida de um bucket
O código de exemplo a seguir mostra como excluir as regras de ciclo de vida configuradas para o examplebucket. Para excluir uma ou mais regras de ciclo de vida, siga as instruções em How do I delete one or more lifecycle rules?
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) Endpoint is used as an example. Replace it with the actual Endpoint.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the bucket name.
bucket = client.get_bucket('examplebucket')
# Delete all lifecycle rules.
bucket.lifecycle = []
Referências
Para mais informações sobre a operação da API para configurar regras de ciclo de vida, consulte PutBucketLifecycle.
Para mais detalhes sobre a operação da API para consultar regras de ciclo de vida, consulte GetBucketLifecycle.
Para saber mais sobre a operação da API para excluir regras de ciclo de vida, consulte DeleteBucketLifecycle.