use of com.qcloud.cos.model.BucketLifecycleConfiguration.Rule 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.Rule in project cos-java-sdk-v5 by tencentyun.
the class PutGetLifeCycleConfigTest method testPutGetDelLifeCycleForBucketWithVersions.
@Ignore
public void testPutGetDelLifeCycleForBucketWithVersions() {
if (!judgeUserInfoValid()) {
return;
}
BucketVersioningConfiguration bucketVersionConfig = new BucketVersioningConfiguration(BucketVersioningConfiguration.ENABLED);
SetBucketVersioningConfigurationRequest setBucketVersionReq = new SetBucketVersioningConfigurationRequest(bucket, bucketVersionConfig);
cosclient.setBucketVersioningConfiguration(setBucketVersionReq);
List<Rule> rules = new ArrayList<>();
Rule standardIaRule = new Rule();
standardIaRule.setId("standard_ia transition for version");
standardIaRule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate("standard_ia/")));
List<Transition> standardIaTransitions = new ArrayList<>();
Transition standardTransition = new Transition();
standardTransition.setDays(20);
standardTransition.setStorageClass(StorageClass.Standard_IA.toString());
standardIaTransitions.add(standardTransition);
standardIaRule.setTransitions(standardIaTransitions);
standardIaRule.setStatus(BucketLifecycleConfiguration.DISABLED);
standardIaRule.setNoncurrentVersionExpirationInDays(360);
List<NoncurrentVersionTransition> noncurrentVersionTransitions = new ArrayList<>();
NoncurrentVersionTransition noncurrentVersionTransition = new NoncurrentVersionTransition();
noncurrentVersionTransition.setDays(30);
noncurrentVersionTransition.setStorageClass(StorageClass.Standard_IA);
standardIaRule.setNoncurrentVersionTransitions(noncurrentVersionTransitions);
standardIaRule.setExpirationInDays(120);
rules.add(standardIaRule);
testPutGetDelRules(rules);
bucketVersionConfig.setStatus(BucketVersioningConfiguration.SUSPENDED);
SetBucketVersioningConfigurationRequest closeBucketVersionReq = new SetBucketVersioningConfigurationRequest(bucket, bucketVersionConfig);
cosclient.setBucketVersioningConfiguration(closeBucketVersionReq);
}
use of com.qcloud.cos.model.BucketLifecycleConfiguration.Rule in project cos-java-sdk-v5 by tencentyun.
the class PutGetLifeCycleConfigTest method testPutGetDelExpirationDateLifeCycle.
@Test
public void testPutGetDelExpirationDateLifeCycle() throws Exception {
if (!judgeUserInfoValid()) {
return;
}
List<Rule> rules = new ArrayList<>();
Rule rule = new Rule();
rule.setId("delete prefix xxxy at a date");
rule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate("test/")));
Calendar c1 = Calendar.getInstance();
c1.set(2017, 11, 01, 8, 00, 00);
rule.setExpirationDate(c1.getTime());
rule.setStatus(BucketLifecycleConfiguration.ENABLED);
rules.add(rule);
testPutGetDelRules(rules);
}
use of com.qcloud.cos.model.BucketLifecycleConfiguration.Rule in project cos-java-sdk-v5 by tencentyun.
the class PutGetLifeCycleConfigTest method testPutGetDelLifeCycleForNormalBucket.
@Test
public void testPutGetDelLifeCycleForNormalBucket() {
if (!judgeUserInfoValid()) {
return;
}
List<Rule> rules = new ArrayList<>();
// 30天后删除
Rule deletePrefixRule = new Rule();
deletePrefixRule.setId("delete prefix xxxy after 30 days");
deletePrefixRule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate("delete_prefix/")));
deletePrefixRule.setExpirationInDays(30);
deletePrefixRule.setStatus(BucketLifecycleConfiguration.ENABLED);
// 20天后沉降到低频,一年后删除
Rule standardIaRule = new Rule();
standardIaRule.setId("standard_ia transition");
standardIaRule.setFilter(new LifecycleFilter(new LifecyclePrefixPredicate("standard_ia/")));
List<Transition> standardIaTransitions = new ArrayList<>();
Transition standardTransition = new Transition();
standardTransition.setDays(20);
standardTransition.setStorageClass(StorageClass.Standard_IA.toString());
standardIaTransitions.add(standardTransition);
standardIaRule.setTransitions(standardIaTransitions);
standardIaRule.setStatus(BucketLifecycleConfiguration.DISABLED);
standardIaRule.setExpirationInDays(120);
rules.add(deletePrefixRule);
rules.add(standardIaRule);
testPutGetDelRules(rules);
}
use of com.qcloud.cos.model.BucketLifecycleConfiguration.Rule in project cos-java-sdk-v5 by tencentyun.
the class BucketConfigurationXmlFactory method convertToXmlByteArray.
public byte[] convertToXmlByteArray(BucketLifecycleConfiguration config) throws CosClientException {
XmlWriter xml = new XmlWriter();
xml.start("LifecycleConfiguration");
for (Rule rule : config.getRules()) {
writeRule(xml, rule);
}
xml.end();
return xml.getBytes();
}
Aggregations