use of com.qcloud.cos.model.BucketLifecycleConfiguration in project cos-java-sdk-v5 by tencentyun.
the class BucketLifecycleDemo method queryPath.
public void queryPath() {
// 存储桶的命名格式为 BucketName-APPID ,此处填写的存储桶名称必须为此格式
BucketLifecycleConfiguration queryLifeCycleRet = cosClient.getBucketLifecycleConfiguration(bucketName);
if (queryLifeCycleRet == null) {
return;
}
List<BucketLifecycleConfiguration.Rule> ruleLists = queryLifeCycleRet.getRules();
Iterator<BucketLifecycleConfiguration.Rule> iterator = ruleLists.iterator();
while (iterator.hasNext()) {
BucketLifecycleConfiguration.Rule next = iterator.next();
System.out.println("path:" + next.getId());
}
}
use of com.qcloud.cos.model.BucketLifecycleConfiguration in project cos-java-sdk-v5 by tencentyun.
the class BucketLifecycleDemo method addLifeCycle.
public void addLifeCycle(String id, String path) {
List<BucketLifecycleConfiguration.Rule> rules = new ArrayList<BucketLifecycleConfiguration.Rule>();
// 规则1 30天后删除路径以 hongkong_movie/ 为开始的文件
BucketLifecycleConfiguration.Rule deletePrefixRule = new BucketLifecycleConfiguration.Rule();
deletePrefixRule.setId(id);
deletePrefixRule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate(path)));
// 文件上传或者变更后, 30天后删除
deletePrefixRule.setExpirationInDays(7);
// 设置规则为生效状态
deletePrefixRule.setStatus(BucketLifecycleConfiguration.ENABLED);
// 规则2 20天后沉降到低频,一年后删除
BucketLifecycleConfiguration.Rule standardIaRule = new BucketLifecycleConfiguration.Rule();
standardIaRule.setId(id + System.currentTimeMillis());
standardIaRule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate(path)));
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(30);
// 将两条规则添加到策略集合中
rules.add(deletePrefixRule);
// rules.add(standardIaRule);
// 生成 bucketLifecycleConfiguration
BucketLifecycleConfiguration bucketLifecycleConfiguration = new BucketLifecycleConfiguration();
bucketLifecycleConfiguration.setRules(rules);
// 存储桶的命名格式为 BucketName-APPID
SetBucketLifecycleConfigurationRequest setBucketLifecycleConfigurationRequest = new SetBucketLifecycleConfigurationRequest(bucketName, bucketLifecycleConfiguration);
// 设置生命周期
cosClient.setBucketLifecycleConfiguration(setBucketLifecycleConfigurationRequest);
}
use of com.qcloud.cos.model.BucketLifecycleConfiguration in project cos-java-sdk-v5 by tencentyun.
the class PutGetLifeCycleConfigTest method testPutGetDelRules.
private void testPutGetDelRules(List<Rule> rules) {
BucketLifecycleConfiguration bucketLifecycleConfiguration = new BucketLifecycleConfiguration();
bucketLifecycleConfiguration.setRules(rules);
SetBucketLifecycleConfigurationRequest setBucketLifecycleConfigurationRequest = new SetBucketLifecycleConfigurationRequest(bucket, bucketLifecycleConfiguration);
cosclient.setBucketLifecycleConfiguration(setBucketLifecycleConfigurationRequest);
try {
// put 后立刻get会存在获取不到的可能
Thread.sleep(4000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
BucketLifecycleConfiguration queryLifeCycleRet = cosclient.getBucketLifecycleConfiguration(bucket);
List<Rule> ruleLists = queryLifeCycleRet.getRules();
assertEquals(rules.size(), ruleLists.size());
for (int ruleIndex = 0; ruleIndex < rules.size(); ++ruleIndex) {
Rule ruleSet = rules.get(ruleIndex);
Rule ruleQuery = ruleLists.get(ruleIndex);
assertEquals(ruleSet.getId(), ruleQuery.getId());
assertEquals(ruleSet.getExpirationInDays(), ruleQuery.getExpirationInDays());
if (ruleSet.getFilter() != null) {
assertTrue(ruleQuery.getFilter() != null);
LifecyclePrefixPredicate prefixSet = (LifecyclePrefixPredicate) ruleSet.getFilter().getPredicate();
LifecyclePrefixPredicate prefixGet = (LifecyclePrefixPredicate) ruleSet.getFilter().getPredicate();
assertEquals(prefixSet.getPrefix(), prefixGet.getPrefix());
}
}
cosclient.deleteBucketLifecycleConfiguration(bucket);
}
use of com.qcloud.cos.model.BucketLifecycleConfiguration in project cos-java-sdk-v5 by tencentyun.
the class PutGetLifeCycleConfigTest method testGetLifecycleBeforeSet.
@Test
public void testGetLifecycleBeforeSet() {
if (!judgeUserInfoValid()) {
return;
}
BucketLifecycleConfiguration blcf = cosclient.getBucketLifecycleConfiguration(bucket);
assertNull(blcf);
}
Aggregations