Certaines données transférées vers Object Storage Service (OSS) sont rarement consultées, mais doivent être conservées dans un stockage à froid pour des raisons de conformité ou d'archivage. Vous pouvez également supprimer par lots les données devenues inutiles afin de réduire vos coûts de stockage. Dans ces cas, configurez des règles de cycle de vie basées sur la date de dernière modification pour convertir périodiquement les données actives en données froides ou supprimer les objets indésirables.
Notes d'utilisation
Avant de configurer des règles de cycle de vie basées sur la date de dernière modification des objets, assurez-vous de bien comprendre cette fonctionnalité. Pour plus d'informations, consultez la rubrique Règles de cycle de vie basées sur la date de dernière modification.
Cette rubrique utilise l'endpoint public de la région Chine (Hangzhou). Pour accéder à OSS depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un endpoint interne. Pour obtenir la liste des régions et des endpoints pris en charge, consultez la rubrique Régions et endpoints.
Les exemples de cette rubrique montrent comment créer une instance OSSClient à l'aide d'un endpoint OSS. Pour découvrir d'autres configurations, telles que l'utilisation d'un nom de domaine personnalisé ou l'authentification via des identifiants Security Token Service (STS), consultez la rubrique Créer un OssClient.
Pour définir des règles de cycle de vie, vous devez disposer de l'autorisation
oss:PutBucketLifecycle. Pour consulter les règles de cycle de vie, vous devez disposer de l'autorisationoss:GetBucketLifecycle. Pour supprimer toutes les règles de cycle de vie, vous devez disposer de l'autorisationoss:DeleteBucketLifecycle. Pour plus de détails, reportez-vous à la rubrique Accorder des stratégies d'accès personnalisées à un utilisateur RAM.
Configurer des règles de cycle de vie pour un bucket
L'exemple de code suivant montre comment configurer des règles de cycle de vie basées sur la date de dernière modification pour un bucket nommé examplebucket. Pour modifier les règles existantes, suivez les instructions fournies dans la rubrique Comment modifier la configuration d'une ou plusieurs règles de cycle de vie ?
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))
]
Interroger les règles de cycle de vie d'un bucket
Le code ci-dessous illustre la procédure pour récupérer les règles de cycle de vie configurées sur le bucket 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
Supprimer toutes les règles de cycle de vie d'un bucket
L'extrait de code suivant explique comment supprimer les règles de cycle de vie associées au bucket examplebucket. Si vous souhaitez retirer uniquement certaines règles, référez-vous aux étapes décrites dans la rubrique Comment supprimer une ou plusieurs règles de cycle de vie ?
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 = []
Références
Pour en savoir plus sur l'opération API permettant de configurer des règles de cycle de vie, consultez la rubrique PutBucketLifecycle.
Pour en savoir plus sur l'opération API permettant d'interroger les règles de cycle de vie, consultez la rubrique GetBucketLifecycle.
Pour en savoir plus sur l'opération API permettant de supprimer les règles de cycle de vie, consultez la rubrique DeleteBucketLifecycle.