全部产品
对象存储 OSS

生命周期管理

更新时间:2017-06-07 13:26:11   分享:   

用户可以为自己的Bucket设置生命周期规则,来管理器中的文件。目前,用户可以通过规则来删除相匹配的文件。每条规则都由如下几个部分组成:

  • 规则ID,用于表示一条规则,不可以和别的规则重复
  • Object名称前缀,只有匹配该前缀的Object才适用这个规则。前缀之间不能重叠,如 /home/home/user 是不合法的。因为前者是后者的前缀
  • 操作,用户希望对匹配的Object所执行的操作。
  • 过期天数,指定距文件最后修改时间多少天之后删除
  • 是否生效

更多文档请参考:

注意生命周期涉及到删除用户数据,请务必仔细阅读相关文档,并在测试Bucket上进行试验后,再在生产Bucket中使用。

设置生命周期规则

以下示例设置了两条规则:

  • 规则一:规则ID是“rule1”;前缀是“tests/”;状态是启用;过期天数是356天;
  • 规则二:规则ID是“rule2”;前缀是“logging-”;状态是关闭;过期天数是1天;
  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. from oss2.models import LifecycleExpiration, LifecycleRule, BucketLifecycle
  4. auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
  5. bucket = oss2.Bucket(auth, '您的Endpoint', '您的Bucket名')
  6. rule1 = LifecycleRule('rule1', 'tests/',
  7. status=LifecycleRule.ENABLED,
  8. expiration=LifecycleExpiration(days=356))
  9. rule2 = LifecycleRule('rule2', 'logging-',
  10. status=LifecycleRule.DISABLED,
  11. expiration=LifecycleExpiration(days=1))
  12. bucket.put_bucket_lifecycle(BucketLifecycle([rule1, rule2]))

获取生命周期规则

  1. lifecycle = bucket.get_bucket_lifecycle()
  2. for rule in lifecycle.rules:
  3. print('id={0}, prefix={1}, status={2}, days={3}, date={4}'
  4. .format(rule.id, rule.prefix, rule.status, rule.expiration.days, rule.expiration.date))

删除生命周期规则

删除Bucket所有的生命周期规则,即关闭生命周期功能:

  1. bucket.delete_bucket_lifecycle()
  2. # 再次获取就会抛出异常
  3. try:
  4. lifecycle = bucket.get_bucket_lifecycle()
  5. except oss2.exceptions.NoSuchLifecycle:
  6. print('lifecycle is not configured')
本文导读目录
本文导读目录
以上内容是否对您有帮助?