Algunos datos que se cargan en Object Storage Service (OSS) no se consultan con frecuencia, pero deben conservarse en almacenamiento en frío por requisitos de cumplimiento o archivado. También es posible que necesite eliminar datos obsoletos por lotes para reducir los costos de almacenamiento. En estos casos, configure reglas de ciclo de vida basadas en la fecha de última modificación. Así convertirá periódicamente los datos activos en datos fríos o eliminará los objetos innecesarios.
Notas de uso
Antes de configurar reglas de ciclo de vida basadas en la fecha de última modificación de los objetos, familiarícese con esta función. Para obtener más información, consulte Lifecycle rules based on the last modified time.
En este tema se utiliza el endpoint público de la región China (Hangzhou). Si accede a OSS desde otros servicios de Alibaba Cloud dentro de la misma región, utilice un endpoint interno. Para conocer las regiones y los endpoints compatibles, consulte Regions and endpoints.
Este tema muestra cómo crear una instancia de OSSClient con un endpoint de OSS. Para otras configuraciones, como usar un dominio personalizado o autenticarse con credenciales de Security Token Service (STS), consulte Create an OssClient.
Para establecer reglas de ciclo de vida, necesita el permiso
oss:PutBucketLifecycle. Para consultar las reglas de ciclo de vida, necesita el permisooss:GetBucketLifecycle. Para eliminar todas las reglas de ciclo de vida, necesita el permisooss:DeleteBucketLifecycle. Para obtener más información, consulte Grant custom access policies to a RAM user.
Configurar reglas de ciclo de vida para un bucket
A continuación se muestra un ejemplo de código para configurar reglas de ciclo de vida basadas en la fecha de última modificación en un bucket llamado examplebucket. Para modificar las reglas de ciclo de vida, siga las instrucciones descritas en 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))
]
Consultar las reglas de ciclo de vida de un bucket
A continuación se muestra un ejemplo de código para consultar las reglas de ciclo de vida configuradas en 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
Eliminar todas las reglas de ciclo de vida de un bucket
A continuación se muestra un ejemplo de código para eliminar las reglas de ciclo de vida configuradas en examplebucket. Para eliminar una o varias reglas específicas, siga las instrucciones descritas en 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 = []
Referencias
Para obtener más información sobre la operación de API que permite configurar reglas de ciclo de vida, consulte PutBucketLifecycle.
Para obtener más información sobre la operación de API que permite consultar reglas de ciclo de vida, consulte GetBucketLifecycle.
Para obtener más información sobre la operación de API que permite eliminar reglas de ciclo de vida, consulte DeleteBucketLifecycle.