生命周期

最近更新时间:2024-05-21 10:43:33

我的收藏
本文档提供关于生命周期的 API 概览以及 SDK 示例代码。
API
操作名
操作描述
设置生命周期
设置存储桶的生命周期管理的配置
查询生命周期
查询存储桶生命周期管理的配置
删除生命周期
删除存储桶生命周期管理的配置

设置生命周期

功能说明

设置指定存储桶的生命周期配置信息(PUT Bucket lifecycle)。

方法原型

public void setBucketLifecycleConfiguration(String bucketName, BucketLifecycleConfiguration bucketLifecycleConfiguration)
throws CosClientException, CosServiceException;

请求示例

List<BucketLifecycleConfiguration.Rule> rules = new ArrayList<BucketLifecycleConfiguration.Rule>();
// 规则1 30天后删除路径以 hongkong_movie/ 为开始的文件
BucketLifecycleConfiguration.Rule deletePrefixRule = new BucketLifecycleConfiguration.Rule();
deletePrefixRule.setId("delete prefix xxxy after 30 days");
deletePrefixRule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate("hongkong_movie/")));
// 文件上传或者变更后, 30天后删除
deletePrefixRule.setExpirationInDays(30);
// 设置规则为生效状态
deletePrefixRule.setStatus(BucketLifecycleConfiguration.ENABLED);

// 规则2 20天后沉降到低频,一年后删除
BucketLifecycleConfiguration.Rule standardIaRule = new BucketLifecycleConfiguration.Rule();
standardIaRule.setId("standard_ia transition");
standardIaRule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate("standard_ia/")));
List<BucketLifecycleConfiguration.Transition> standardIaTransitions = new ArrayList<BucketLifecycleConfiguration.Transition>();
BucketLifecycleConfiguration.Transition standardTransition = new BucketLifecycleConfiguration.Transition();
standardTransition.setDays(20);
standardTransition.setStorageClass(StorageClass.Standard_IA.toString());
standardIaTransitions.add(standardTransition);
standardIaRule.setTransitions(standardIaTransitions);
standardIaRule.setStatus(BucketLifecycleConfiguration.ENABLED);
standardIaRule.setExpirationInDays(365);

// 将两条规则添加到策略集合中
rules.add(deletePrefixRule);
rules.add(standardIaRule);

// 生成 bucketLifecycleConfiguration
BucketLifecycleConfiguration bucketLifecycleConfiguration =
new BucketLifecycleConfiguration();
bucketLifecycleConfiguration.setRules(rules);

// 存储桶的命名格式为 BucketName-APPID
String bucketName = "examplebucket-1250000000";
SetBucketLifecycleConfigurationRequest setBucketLifecycleConfigurationRequest =
new SetBucketLifecycleConfigurationRequest(bucketName, bucketLifecycleConfiguration);

// 设置生命周期
cosClient.setBucketLifecycleConfiguration(setBucketLifecycleConfigurationRequest);

参数说明

参数名称
描述
类型
bucketName
存储桶的命名格式为 BucketName-APPID,详情请参见 命名规范
String
bucketLifecycleConfiguration
生命周期配置
BucketLifecycleConfiguration

返回结果说明

成功:无返回值。
失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。具体请参见 异常处理

查询生命周期

功能说明

查询存储桶的生命周期管理配置(GET Bucket lifecycle)。

方法原型

public BucketLifecycleConfiguration getBucketLifecycleConfiguration(String bucketName)
throws CosClientException, CosServiceException;


请求示例

// 存储桶的命名格式为 BucketName-APPID ,此处填写的存储桶名称必须为此格式
String bucketName = "examplebucket-1250000000";
BucketLifecycleConfiguration queryLifeCycleRet =
cosClient.getBucketLifecycleConfiguration(bucketName);
List<BucketLifecycleConfiguration.Rule> ruleLists = queryLifeCycleRet.getRules();

参数说明

参数名称
描述
类型
bucketName
存储桶的命名格式为 BucketName-APPID,详情请参见 命名规范
String

返回结果说明

成功:返回 BucketLifecycleConfiguration 类, 包含存储桶的生命周期规则。
失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。具体请参见 异常处理

删除生命周期

功能说明

删除存储桶生命周期管理的配置(DELETE Bucket lifecycle)。

方法原型

public void deleteBucketLifecycleConfiguration(String bucketName)
throws CosClientException, CosServiceException;

请求示例

//存储桶的命名格式为 BucketName-APPID
String bucketName = "examplebucket-1250000000";
cosClient.deleteBucketLifecycleConfiguration(bucketName);

参数说明

参数名称
描述
类型
bucketName
存储桶的命名格式为 BucketName-APPID,详情请参见 命名规范
String

返回结果说明

成功:无返回值。
失败:发生错误(如身份认证失败),抛出异常 CosClientException 或者 CosServiceException。具体请参见 异常处理

相关示例

关于生命周期的完整示例,请前往 GitHub 查看。