最近更新时间:2024-09-05 11:30:40
Bucket的生命周期说明可参照:生命周期管理。
/**
* 创建Bucket生命周期
*/
public void putLifecycle() throws ParseException {
// 初始化 KS3Client,详情请参见文档:https://docs.ksyun.com/documents/40559
Ks3Client client = initClient();
// 规则1
Rule rule1 = new Rule();
// 设置规则ID,不可重复
rule1.setId("rule-1");
// 设置要匹配的文件的前缀
rule1.setPrefix("0001/");
// 设置过期时间,最后修改时间为该时间之前的文件将会在该日期+1天后过期删除
rule1.setExpirationDate(new SimpleDateFormat("yyyy-MM-dd").parse("2023-01-01"));
// 启用该规则
rule1.setStatus(Status.ENABLED);
// 规则2
Rule rule2 = new Rule();
rule2.setId("rule-2");
rule2.setStatus(Status.ENABLED);
rule2.setPrefix("0002/");
// 设置要匹配的文件的Tag,可添加多个
rule2.setTagSet(Arrays.asList(new ObjectTag("key1", "value1"), new ObjectTag("key2", "value2")));
// 设置过期时间为文件的最后修改时间+130天
rule2.setExpirationInDays(130);
// 设置存储类型转:文件最后修改时间+10天后转为低频存储,文件最后修改时间+40天后转为归档存储
rule2.setStorageTransitions(Arrays.asList(new Transition(10, StorageClass.StandardInfrequentAccess), new Transition(40, StorageClass.Archive)));
// 规则 3,文件和碎片的过期规则
Rule rule3 = new Rule();
rule3.setId("rule-3");
rule3.setStatus(Status.ENABLED);
// 设置要匹配的文件的前缀
rule3.setPrefix("0003/");
// 设置过期时间为文件最后修改时间 +100 天
rule3.setExpirationInDays(100);
// 设置指定日期作为过期时间
// rule3.setExpirationDate(date);
AbortMultipartUpload abortMultipartUpload = new AbortMultipartUpload();
// 碎片的过期时间为 init multi upload 的时间 +15 天
abortMultipartUpload.setExpirationDays(15);
// 设置指定日期作为碎片的过期时间
// abortMultipartUpload.setExpirationDate(date);
rule3.setAbortMultipartUpload(abortMultipartUpload);
// 生命周期配置
BucketLifecycleConfiguration configuration = new BucketLifecycleConfiguration(Arrays.asList(rule1, rule2, rule3));
// 支持前缀重叠
configuration.setAllowSameActionOverlap(true);
// 创建Bucket生命周期
client.putBucketLifecycle(bucketName, configuration);
}
/**
* 获取bucket生命周期
*
* @return 生命周期
*/
public BucketLifecycleConfiguration getLifecycle() {
// yourBucket填写您的bucket的名称
String bucketName = "yourBucket";
// yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
String endpoint = "yourEndpoint";
// 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 创建Ks3ClientConfig 实例。
Ks3ClientConfig config = new Ks3ClientConfig();
// 设置域名
config.setEndpoint(endpoint);
config.setDomainMode(false);
// 创建Ks3Client实例
Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
// 获取bucket生命周期
return client.getBucketLifecycle(bucketName);
}
/**
* 删除bucket生命周期
*/
public void deleteLifecycle() {
// yourBucket填写您的bucket的名称
String bucketName = "yourBucket";
// yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
String endpoint = "yourEndpoint";
// 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 创建Ks3ClientConfig 实例。
Ks3ClientConfig config = new Ks3ClientConfig();
// 设置域名
config.setEndpoint(endpoint);
config.setDomainMode(false);
// 创建Ks3Client实例
Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
// 删除bucket生命周期
client.deleteBucketLifecycle(bucketName);
}
纯净模式