Ejemplo n.º 1
0
        public void putBucketLifecycle()
        {
            //.cssg-snippet-body-start:[put-bucket-lifecycle]
            CosXmlConfig config = new CosXmlConfig.Builder()
                                  .SetConnectionTimeoutMs(60000) //设置连接超时时间,单位毫秒,默认45000ms
                                  .SetReadWriteTimeoutMs(40000)  //设置读写超时时间,单位毫秒,默认45000ms
                                  .IsHttps(true)                 //设置默认 HTTPS 请求
                                  .SetAppid("1253653367")        //设置腾讯云账户的账户标识 APPID
                                  .SetRegion("ap-guangzhou")     //设置一个默认的存储桶地域
                                  .Build();

            string secretId       = Environment.GetEnvironmentVariable("COS_KEY");    //云 API 密钥 SecretId
            string secretKey      = Environment.GetEnvironmentVariable("COS_SECRET"); //云 API 密钥 SecretKey
            long   durationSecond = 600;                                              //每次请求签名有效时长,单位为秒
            QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId,
                                                                                                    secretKey, durationSecond);

            CosXml cosXml = new CosXmlServer(config, qCloudCredentialProvider);

            try
            {
                string bucket = "bucket-cssg-test-dotnet-1253653367"; //格式:BucketName-APPID
                PutBucketLifecycleRequest request = new PutBucketLifecycleRequest(bucket);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                //设置 lifecycle
                LifecycleConfiguration.Rule rule = new LifecycleConfiguration.Rule();
                rule.id     = "lfiecycleConfigureId";
                rule.status = "Enabled"; //Enabled,Disabled

                rule.filter        = new COSXML.Model.Tag.LifecycleConfiguration.Filter();
                rule.filter.prefix = "2/";

                //指定分片过期删除操作
                rule.abortIncompleteMultiUpload = new LifecycleConfiguration.AbortIncompleteMultiUpload();
                rule.abortIncompleteMultiUpload.daysAfterInitiation = 2;

                request.SetRule(rule);

                //执行请求
                PutBucketLifecycleResult result = cosXml.PutBucketLifecycle(request);
                //请求成功
                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                Console.WriteLine("CosClientException: " + clientEx);
                Assert.Null(clientEx);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Assert.Null(serverEx);
            }
            //.cssg-snippet-body-end
        }
Ejemplo n.º 2
0
        public static void AsynPutBucketLifeCycle(COSXML.CosXml cosXml, string bucket)
        {
            PutBucketLifecycleRequest request = new PutBucketLifecycleRequest(bucket);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            //设置 lifecycle
            COSXML.Model.Tag.LifecycleConfiguration.Rule rule = new COSXML.Model.Tag.LifecycleConfiguration.Rule();
            rule.id     = "lfiecycleConfig3";
            rule.status = "Enabled"; //Enabled,Disabled

            rule.filter        = new COSXML.Model.Tag.LifecycleConfiguration.Filter();
            rule.filter.prefix = "3";

            rule.abortIncompleteMultiUpload = new COSXML.Model.Tag.LifecycleConfiguration.AbortIncompleteMultiUpload();
            rule.abortIncompleteMultiUpload.daysAfterInitiation = 2;

            request.SetRule(rule);

            ///执行请求
            cosXml.PutBucketLifecycle(request,
                                      delegate(CosResult cosResult)
            {
                PutBucketLifecycleResult result = cosResult as PutBucketLifecycleResult;
                Console.WriteLine(result.GetResultInfo());
            },
                                      delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.Message);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
            });
        }
Ejemplo n.º 3
0
        /// 设置存储桶生命周期
        public void PutBucketLifecycle()
        {
            //.cssg-snippet-body-start:[put-bucket-lifecycle]
            try
            {
                string bucket = "examplebucket-1250000000"; //格式:BucketName-APPID
                PutBucketLifecycleRequest request = new PutBucketLifecycleRequest(bucket);
                //设置 lifecycle
                LifecycleConfiguration.Rule rule = new LifecycleConfiguration.Rule();
                rule.id     = "lfiecycleConfigureId";
                rule.status = "Enabled"; //Enabled,Disabled

                rule.filter        = new COSXML.Model.Tag.LifecycleConfiguration.Filter();
                rule.filter.prefix = "2/";

                //指定分片过期删除操作
                rule.abortIncompleteMultiUpload = new LifecycleConfiguration.AbortIncompleteMultiUpload();
                rule.abortIncompleteMultiUpload.daysAfterInitiation = 2;

                request.SetRule(rule);

                //执行请求
                PutBucketLifecycleResult result = cosXml.PutBucketLifecycle(request);
                //请求成功
                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                Console.WriteLine("CosClientException: " + clientEx);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }

            //.cssg-snippet-body-end
        }
Ejemplo n.º 4
0
        private void PutBucketLifeCycle()
        {
            try
            {
                PutBucketLifecycleRequest request = new PutBucketLifecycleRequest(bucket);

                var filter = new COSXML.Model.Tag.LifecycleConfiguration.Filter();
                filter.filterAnd        = new LifecycleConfiguration.FilterAnd();
                filter.filterAnd.prefix = "dir/";
                filter.filterAnd.tags   = new List <Tagging.Tag>();
                filter.filterAnd.tags.Add(new Tagging.Tag("key1", "value1"));

                //设置 lifecycle
                COSXML.Model.Tag.LifecycleConfiguration.Rule transitionRule1 = new COSXML.Model.Tag.LifecycleConfiguration.Rule();

                // rule 1
                transitionRule1.id = "transitionRule1";
                //Enabled,Disabled
                transitionRule1.status                  = "Enabled";
                transitionRule1.filter                  = filter;
                transitionRule1.transition              = new LifecycleConfiguration.Transition();
                transitionRule1.transition.days         = 5;
                transitionRule1.transition.storageClass = "ARCHIVE";
                request.SetRule(transitionRule1);

                // rule 2
                COSXML.Model.Tag.LifecycleConfiguration.Rule expirationRule2 = new COSXML.Model.Tag.LifecycleConfiguration.Rule();
                expirationRule2.id              = "expirationRule2";
                expirationRule2.status          = "Enabled";
                expirationRule2.filter          = filter;
                expirationRule2.expiration      = new LifecycleConfiguration.Expiration();
                expirationRule2.expiration.date = "2021-12-14T00:00:00+08:00";
                request.SetRule(expirationRule2);

                // rule 3
                COSXML.Model.Tag.LifecycleConfiguration.Rule expirationRule3 = new COSXML.Model.Tag.LifecycleConfiguration.Rule();
                expirationRule3.id         = "expirationRule3";
                expirationRule3.status     = "Enabled";
                expirationRule3.expiration = new LifecycleConfiguration.Expiration();
                // expiredObjectDeleteMarker 的时候 filter 不能有 tag
                expirationRule3.expiration.expiredObjectDeleteMarker = true;
                request.SetRule(expirationRule3);

                // rule 4
                COSXML.Model.Tag.LifecycleConfiguration.Rule abortRule4 = new COSXML.Model.Tag.LifecycleConfiguration.Rule();
                abortRule4.id     = "abortRule4";
                abortRule4.status = "Enabled";
                abortRule4.abortIncompleteMultiUpload = new COSXML.Model.Tag.LifecycleConfiguration.AbortIncompleteMultiUpload();
                abortRule4.abortIncompleteMultiUpload.daysAfterInitiation = 2;
                request.SetRule(abortRule4);

                // rule 5
                COSXML.Model.Tag.LifecycleConfiguration.Rule ncve1 = new COSXML.Model.Tag.LifecycleConfiguration.Rule();
                ncve1.id     = "noncurrentVersionExpiration1";
                ncve1.status = "Enabled";
                ncve1.noncurrentVersionExpiration = new LifecycleConfiguration.NoncurrentVersionExpiration();
                ncve1.noncurrentVersionExpiration.noncurrentDays = 2;
                request.SetRule(ncve1);

                // rule 6
                COSXML.Model.Tag.LifecycleConfiguration.Rule ncvt1 = new COSXML.Model.Tag.LifecycleConfiguration.Rule();
                ncvt1.id     = "noncurrentVersionTransition1";
                ncvt1.status = "Enabled";
                ncvt1.noncurrentVersionTransition = new LifecycleConfiguration.NoncurrentVersionTransition();
                ncvt1.noncurrentVersionTransition.noncurrentDays = 2;
                ncvt1.noncurrentVersionTransition.storageClass   = "ARCHIVE";
                request.SetRule(ncvt1);

                //执行请求
                PutBucketLifecycleResult result = cosXml.PutBucketLifecycle(request);

                Assert.AreEqual(result.httpCode, 200);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                Console.WriteLine("CosClientException: " + clientEx.Message);
                Assert.Fail();
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Assert.Fail();
            }
        }