更新时间:2024-06-21 GMT+08:00
设置生命周期规则
您可以通过ObsClient.setBucketLifecycle设置桶的生命周期规则。
设置对象转换策略
以下代码展示了如何设置最新版本对象和历史版本对象的转换策略:
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); String endPoint = "https://your-endpoint"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); LifecycleConfiguration config = new LifecycleConfiguration(); LifecycleConfiguration.Rule rule = config.new Rule(); rule.setEnabled(true); rule.setId("rule1"); rule.setPrefix("prefix"); LifecycleConfiguration.Transition transition = config.new Transition(); // 指定满足前缀的对象创建30天后转换 transition.setDays(30); // 指定对象转换后的存储类型 transition.setObjectStorageClass(StorageClassEnum.STANDARD); // 直接指定满足前缀的对象转换日期 // transition.setDate(new SimpleDateFormat("yyyy-MM-dd").parse("2018-10-31")); rule.getTransitions().add(transition); LifecycleConfiguration.NoncurrentVersionTransition noncurrentVersionTransition = config.new NoncurrentVersionTransition(); // 指定满足前缀的对象成为历史版本30天后转换 noncurrentVersionTransition.setDays(30); // 指定历史版本对象转换后的存储类型 noncurrentVersionTransition.setObjectStorageClass(StorageClassEnum.COLD); rule.getNoncurrentVersionTransitions().add(noncurrentVersionTransition); config.addRule(rule); obsClient.setBucketLifecycle("bucketname", config);
设置对象过期时间
以下代码展示了如何设置最新版本对象和历史版本对象的过期时间:
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); String endPoint = "https://your-endpoint"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); LifecycleConfiguration config = new LifecycleConfiguration(); Rule rule = config.new Rule(); rule.setEnabled(true); rule.setId("rule1"); rule.setPrefix("prefix"); Expiration expiration = config.new Expiration(); // 指定满足前缀的对象创建60天后过期 expiration.setDays(60); // 直接指定满足前缀的对象过期时间 // expiration.setDate(new SimpleDateFormat("yyyy-MM-dd").parse("2018-12-31")); rule.setExpiration(expiration); NoncurrentVersionExpiration noncurrentVersionExpiration = config.new NoncurrentVersionExpiration(); // 指定满足前缀的对象成为历史版本60天后过期 noncurrentVersionExpiration.setDays(60); rule.setNoncurrentVersionExpiration(noncurrentVersionExpiration); config.addRule(rule); obsClient.setBucketLifecycle("bucketname", config);
父主题: 生命周期管理