生命周期

更新时间: 2020-03-24

目录

获取桶生命周期

设置桶生命周期

删除桶生命周期

本节介绍如何创管理存储桶的生命周期。

OSS支持设置生命周期(Lifecycle)规则,自动删除过期的文件和碎片。每条规则包含:

  • 是否生效。生命周期可以进行创建但不让它生效,在需要的时候开启。
  • 规则ID。用于标识一条规则,同一存储空间内规则ID不能重复。
  • 策略。有以下两种设置方式。同一存储空间内仅支持一种设置方式。
    • 按前缀匹配。此种方式允许创建多条规则,前缀不能重复。
    • 配置到整个存储空间。此种方式只能创建一条规则。
  • 过期时间。指定一个过期天数N,文件会在其最近更新时间点的N天后过期。

桶生命周期的设置方法是setBucketLifeCycleConfiguration(String bucketName, BucketLifecycleConfiguration bucketLifecycleConfiguration),BucketLifecycleConfiguration参数的属性说明如下:

属性 描述
List Rule Rule包含ID、Status、Expiration和Filter属性,用于指定生命周期的规则
String ID 指定生命周期规则的ID号
String Status Status表示生命周期规则的开启或者关闭状态,取值为Enabled 和 Disabled
Expiration Expiration 内部包含Integer类型的参数Days,用来指定清理文件的周期时长
Filter Filter 内部包含String类型的参数Perfix,用来指定生命周期规则只能生效于前缀为Perfix的对象
AbortIncompleteMultipartUpload AbortIncompleteMultipartUpload 内部包含Integer类型的DaysAfterInitiation,用来指定清理碎片的周期时长

获取桶生命周期

以下代码用于获取桶的生命周期:

// Endpoint以华北三为例,其它Region请按实际情况填写
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";

//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);

//获取桶生命周期
BucketLifecycleConfiguration bucketLifeCycleConfiguration = ossClient.getBucketLifeCycleConfiguration(bucketName);
System.out.println("Getting BucketLifeCycleConfiguration " + bucketLifeCycleConfiguration);

设置桶生命周期

以下代码用于设置桶的生命周期:

// Endpoint以华北三为例,其它Region请按实际情况填写
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";

//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);

//设置桶生命周期
BucketLifecycleConfiguration bucketLifecycleConfiguration = new BucketLifecycleConfiguration();
List<Rule> rules = new ArrayList<>();
Rule rule = new Rule();
Expiration expiration = new Expiration();
expiration.setDays(1);
//设置周期时长

AbortIncompleteMultipartUpload abortIncompleteMultipartUpload = new AbortIncompleteMultipartUpload();
//设置碎片清理周期时长
abortIncompleteMultipartUpload.setDaysAfterInitiation(1);

Filter filter = new Filter();
//设置指定前缀管理
filter.setPrefix("perfixString");

rule.setExpiration(expiration);
rule.setAbortIncompleteMultipartUpload(abortIncompleteMultipartUpload);
//设置ID
rule.setID("ruleId");
//设置状态
rule.setStatus("Enabled");
rule.setFilter(filter);
rules.add(rule);
bucketLifecycleConfiguration.setRule(rules);
ossClient.setBucketLifeCycleConfiguration(bucketName, bucketLifecycleConfiguration);

删除桶生命周期

// Endpoint以华北三为例,其它Region请按实际情况填写
String endpoint = "oss.cn-north-3.inspurcloudoss.com";
String accessKey = "<yourAccessKey>";
String secretKey = "<yourSecretKey>";
String bucketName = "<yourBucketName>";

//创建OSSClient实例
OSSClientImpl ossClient = new OSSClientImpl(endpoint, accessKey, secretKey);

//删除桶生命周期
ossClient.deleteBucketLifeCycleConfiguration(bucketName);