生命周期
更新时间: 2020-03-24
目录
本节介绍如何创管理存储桶的生命周期。
OSS支持设置生命周期(Lifecycle)规则,自动删除过期的文件和碎片。每条规则包含:
- 是否生效。生命周期可以进行创建但不让它生效,在需要的时候开启。
- 规则ID。用于标识一条规则,同一存储空间内规则ID不能重复。
- 策略。有以下两种设置方式。同一存储空间内仅支持一种设置方式。
- 按前缀匹配。此种方式允许创建多条规则,前缀不能重复。
- 配置到整个存储空间。此种方式只能创建一条规则。
- 过期时间。指定一个过期天数N,文件会在其最近更新时间点的N天后过期。
桶生命周期的设置方法是setBucketLifeCycleConfiguration(String bucketName, BucketLifecycleConfiguration bucketLifecycleConfiguration),BucketLifecycleConfiguration参数的属性说明如下:
属性 | 描述 |
---|---|
List |
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);