Search in sources :

Example 1 with SetBucketLifecycleConfigurationRequest

use of com.qcloud.cos.model.SetBucketLifecycleConfigurationRequest 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);
}
Also used : BucketLifecycleConfiguration(com.qcloud.cos.model.BucketLifecycleConfiguration) LifecycleFilter(com.qcloud.cos.model.lifecycle.LifecycleFilter) LifecyclePrefixPredicate(com.qcloud.cos.model.lifecycle.LifecyclePrefixPredicate) SetBucketLifecycleConfigurationRequest(com.qcloud.cos.model.SetBucketLifecycleConfigurationRequest) ArrayList(java.util.ArrayList)

Example 2 with SetBucketLifecycleConfigurationRequest

use of com.qcloud.cos.model.SetBucketLifecycleConfigurationRequest 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);
}
Also used : BucketLifecycleConfiguration(com.qcloud.cos.model.BucketLifecycleConfiguration) LifecyclePrefixPredicate(com.qcloud.cos.model.lifecycle.LifecyclePrefixPredicate) SetBucketLifecycleConfigurationRequest(com.qcloud.cos.model.SetBucketLifecycleConfigurationRequest) Rule(com.qcloud.cos.model.BucketLifecycleConfiguration.Rule)

Aggregations

BucketLifecycleConfiguration (com.qcloud.cos.model.BucketLifecycleConfiguration)2 SetBucketLifecycleConfigurationRequest (com.qcloud.cos.model.SetBucketLifecycleConfigurationRequest)2 LifecyclePrefixPredicate (com.qcloud.cos.model.lifecycle.LifecyclePrefixPredicate)2 Rule (com.qcloud.cos.model.BucketLifecycleConfiguration.Rule)1 LifecycleFilter (com.qcloud.cos.model.lifecycle.LifecycleFilter)1 ArrayList (java.util.ArrayList)1