Certaines données téléversées dans Object Storage Service (OSS) sont rarement consultées, mais doivent être conservées en 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 situations, 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 fondé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, privilégiez un endpoint interne. La liste des régions et endpoints pris en charge est disponible dans la documentation Régions et endpoints.
Les exemples présentés ici illustrent la création d'une instance OSSClient via un endpoint OSS. D'autres configurations sont possibles, comme l'utilisation d'un domaine personnalisé ou l'authentification avec des identifiants issus du Security Token Service (STS). Consultez la section Créer une instance OssClient pour en savoir plus.
La définition de règles de cycle de vie requiert l'autorisation
oss:PutBucketLifecycle. La consultation de ces règles nécessite l'autorisationoss:GetBucketLifecycle. Enfin, la suppression de toutes les règles de cycle de vie exige l'autorisationoss:DeleteBucketLifecycle. Pour attribuer ces politiques d'accès personnalisées à un utilisateur RAM, reportez-vous à la procédure décrite dans 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 définir des règles de cycle de vie basées sur la date de dernière modification pour un bucket nommé examplebucket. Pour modifier ces règles, 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 récupération des règles de cycle de vie configurées pour 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 suivant montre comment supprimer les règles de cycle de vie associées au bucket examplebucket. Pour ne retirer qu'une partie des règles, appliquez la méthode décrite dans 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 obtenir des détails sur l'opération API permettant de configurer les règles de cycle de vie, consultez la documentation PutBucketLifecycle.
La documentation de l'opération API dédiée à la consultation des règles de cycle de vie est disponible ici : GetBucketLifecycle.
Enfin, pour connaître l'opération API servant à supprimer les règles de cycle de vie, reportez-vous à DeleteBucketLifecycle.