全部产品
对象存储 OSS

生命周期管理

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

OSS允许用户对Bucket设置生命周期规则,以自动淘汰过期掉的文件,节省存储空间。针对不同前缀的文件,用户可以同时设置多条规则。一条规则包含:

  • 规则ID,用于标识一条规则,不能重复
  • 受影响的文件前缀,此规则只作用于符合前缀的文件
  • 过期时间,有三种指定方式:
    1. 指定距文件最后修改时间N天过期
    2. 指定日期创建前的文件过期,之后的不过期
    3. 指定在具体的某一天过期,即在那天之后符合前缀的文件将会过期,而不论文件的最后修改时间。不推荐使用。
  • 是否生效

上面的过期规则对用户上传的文件有效。用户通过uploadPart上传的分片,也可以设置过期规则。Multipart的Lifecycle和文件的类似,过期时间支持1、2两种,不支持3,生效是以init Multipart upload的时间为准。

更多关于生命周期的内容请参考 文件生命周期

设置生命周期规则

通过OSSClient.setBucketLifecycle来设置生命周期规则:

  1. SetBucketLifecycleRequest request = new SetBucketLifecycleRequest("bucketName");
  2. // 最近修改3天后过期
  3. request.AddLifecycleRule(new LifecycleRule(ruleId0, matchPrefix0, RuleStatus.Enabled, 3));
  4. // 特定日期后过期
  5. request.AddLifecycleRule(new LifecycleRule(ruleId1, matchPrefix1, RuleStatus.Enabled,
  6. DateUtil.parseIso8601Date("2022-10-12T00:00:00.000Z")));
  7. // 特定日期前创建的文件过期
  8. LifecycleRule rule = new LifecycleRule(ruleId4, matchPrefix4, RuleStatus.Enabled);
  9. rule.setCreatedBeforeDate(DateUtil.parseIso8601Date("2022-10-12T00:00:00.000Z"));
  10. request.AddLifecycleRule(rule);
  11. // Multipart3天后过期
  12. rule = new LifecycleRule(ruleId2, matchPrefix2, RuleStatus.Enabled);
  13. LifecycleRule.AbortMultipartUpload abortMultipartUpload = rule.new AbortMultipartUpload();
  14. abortMultipartUpload.setExpirationDays(3);
  15. rule.setAbortMultipartUpload(abortMultipartUpload);
  16. request.AddLifecycleRule(rule);
  17. // 特定日期前的Multipart过期
  18. rule = new LifecycleRule(ruleId3, matchPrefix3, RuleStatus.Enabled);
  19. abortMultipartUpload = rule.new AbortMultipartUpload();
  20. abortMultipartUpload.setCreatedBeforeDate(DateUtil.parseIso8601Date("2022-10-12T00:00:00.000Z"));
  21. rule.setAbortMultipartUpload(abortMultipartUpload);
  22. request.AddLifecycleRule(rule);
  23. ossClient.setBucketLifecycle(request);

查看生命周期规则

通过OSSClient.GetBucketLifecycle来查看生命周期规则:

  1. List<LifecycleRule> rules = ossClient.getBucketLifecycle("bucketName");
  2. for (LifecycleRule rule : rules) {
  3. System.out.println(rule.getId());
  4. System.out.println(rule.getPrefix());
  5. System.out.println(rule.getExpirationDays());
  6. }

清空生命周期规则

通过OSSClient.DeleteBucketLifecycle设置来清空生命周期规则:

  1. ossClient.deleteBucketLifecycle("bucketName");
本文导读目录
本文导读目录
以上内容是否对您有帮助?