public static void SetBucketLifecycle() { try { var setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucketName); LifecycleRule lcr1 = new LifecycleRule() { ID = "delete obsoleted files", Prefix = "obsoleted/", Status = RuleStatus.Enabled, ExpriationDays = 3 }; LifecycleRule lcr2 = new LifecycleRule() { ID = "delete temporary files", Prefix = "temporary/", Status = RuleStatus.Enabled, ExpirationTime = DateTime.Parse("2022-10-12T00:00:00.000Z") }; setBucketLifecycleRequest.AddLifecycleRule(lcr1); setBucketLifecycleRequest.AddLifecycleRule(lcr2); client.SetBucketLifecycle(setBucketLifecycleRequest); } catch (OssException ex) { Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}", ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId); } catch (Exception ex) { Console.WriteLine("Failed with error info: {0}", ex.Message); } }
public void LifecycleEmptySettingTest() { SetBucketLifecycleRequest req = new SetBucketLifecycleRequest(_bucketName); try { _ossClient.SetBucketLifecycle(req); Assert.Fail(); } catch (ArgumentException) {} try { new SetBucketLifecycleRequest(null); Assert.Fail(); } catch (ArgumentException) {} try { new SetBucketLifecycleRequest(string.Empty); Assert.Fail(); } catch (ArgumentException) { } }
/// <summary> /// 批量设置生存时间(超时会自动删除) /// </summary> /// <param name="request"></param> /// <returns></returns> public List <ExpireResultDto> SetExpireRange(SetExpireRangeParam request) { return(ToolCommon.GetResponse(() => { var zone = Core.Tools.GetZone(_aLiYunConfig, request.PersistentOps.Zone, () => ZoneEnum.HangZhou); var client = _aLiYunConfig.GetClient(zone); var bucket = Core.Tools.GetBucket(_aLiYunConfig, request.PersistentOps.Bucket); var setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucket); List <ExpireResultDto> list = new List <ExpireResultDto>(); request.Keys.ForEach(key => { LifecycleRule lcr = new LifecycleRule() { ID = "delete " + key + " files", Prefix = key, Status = RuleStatus.Enabled, ExpriationDays = request.Expire }; setBucketLifecycleRequest.AddLifecycleRule(lcr); list.Add(new ExpireResultDto(true, key, "success")); }); client.SetBucketLifecycle(setBucketLifecycleRequest); //调整生命周期 return list; }, message => { List <ExpireResultDto> list = new List <ExpireResultDto>(); request.Keys.ForEach(key => { list.Add(new ExpireResultDto(false, key, message)); }); return list; })); }
private SetBucketLifecycleCommand(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, SetBucketLifecycleRequest setBucketLifecycleRequest) : base(client, endpoint, context) { OssUtils.CheckBucketName(bucketName); _bucketName = bucketName; _setBucketLifecycleRequest = setBucketLifecycleRequest; }
public void LifecycleWithVersioningNegativeTest() { var rule = new LifecycleRule(); rule.ID = "rule test"; rule.Prefix = "test1"; rule.Status = RuleStatus.Enabled; rule.ExpriationDays = 100; rule.CreatedBeforeDate = DateTime.UtcNow.Date.AddDays(400); var req = new SetBucketLifecycleRequest(_bucketName); try { req.AddLifecycleRule(rule); } catch (ArgumentException e) { Assert.AreEqual(e.Message, "Only one expiration property should be specified."); } rule = new LifecycleRule(); rule.ID = "rule test"; rule.Prefix = "test1"; rule.Status = RuleStatus.Enabled; rule.ExpriationDays = 100; rule.ExpiredObjectDeleteMarker = true; req = new SetBucketLifecycleRequest(_bucketName); try { req.AddLifecycleRule(rule); } catch (ArgumentException e) { Assert.AreEqual(e.Message, "Only one expiration property should be specified."); } rule = new LifecycleRule(); rule.ID = "rule test"; rule.Prefix = "test1"; rule.Status = RuleStatus.Enabled; rule.CreatedBeforeDate = DateTime.UtcNow.Date.AddDays(400); rule.ExpiredObjectDeleteMarker = true; req = new SetBucketLifecycleRequest(_bucketName); try { req.AddLifecycleRule(rule); } catch (ArgumentException e) { Assert.AreEqual(e.Message, "Only one expiration property should be specified."); } }
private void Test(LifecycleRule rule) { string bucket = _bucketName; SetBucketLifecycleRequest req = new SetBucketLifecycleRequest(bucket); req.AddLifecycleRule(rule); _ossClient.SetBucketLifecycle(req); OssTestUtils.WaitForCacheExpire(); var rules = _ossClient.GetBucketLifecycle(bucket); Assert.IsTrue(rules.Count == 1); Assert.AreEqual(rules[0], rule); _ossClient.DeleteBucketLifecycle(bucket); }
/// <summary> /// /// </summary> /// <param name="bucketName"></param> /// <param name="rules"></param> /// <![CDATA[ /// LifecycleRule lcr1 = new LifecycleRule() /// { /// ID = "delete obsoleted files", /// Prefix = "obsoleted/", /// Status = RuleStatus.Enabled, /// ExpriationDays = 3 /// }; /// ]]> public void SetBucketLifecycle(string bucketName, LifecycleRule[] rules) { if (rules.Length == 0) { return; } var setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucketName); for (var i = 0; i < rules.Length; i++) { setBucketLifecycleRequest.AddLifecycleRule(rules[i]); } Client.SetBucketLifecycle(setBucketLifecycleRequest); }
private static void SetBucketLifecycle() { try { SetBucketLifecycleRequest request = new SetBucketLifecycleRequest() { BucketName = bucketName, Configuration = new LifecycleConfiguration(), }; LifecycleRule rule1 = new LifecycleRule(); rule1.Id = "rule1"; rule1.Prefix = "prefix"; rule1.Status = RuleStatusEnum.Enabled; rule1.Expiration.Days = 30; Transition transition = new Transition() { Date = new DateTime(2018, 12, 30, 0, 0, 0), StorageClass = StorageClassEnum.Warm }; rule1.Transitions.Add(transition); NoncurrentVersionTransition noncurrentVersionTransition = new NoncurrentVersionTransition() { NoncurrentDays = 30, StorageClass = StorageClassEnum.Cold, }; rule1.NoncurrentVersionTransitions.Add(noncurrentVersionTransition); rule1.NoncurrentVersionExpiration.NoncurrentDays = 30; request.Configuration.Rules.Add(rule1); SetBucketLifecycleResponse response = client.SetBucketLifecycle(request); Console.WriteLine("Set bucket lifecycle response: {0}", response.StatusCode); } catch (ObsException ex) { Console.WriteLine("Exception errorcode: {0}, when set bucket lifecycle.", ex.ErrorCode); Console.WriteLine("Exception errormessage: {0}", ex.ErrorMessage); } }
/// <summary> /// 设置生存时间(超时会自动删除) /// </summary> /// <param name="request"></param> /// <returns></returns> public ExpireResultDto SetExpire(SetExpireParam request) { return(ToolCommon.GetResponse(() => { new SetExpireParamValidator().Validate(request).Check(HttpStatus.Err.Name); var zone = Core.Tools.GetZone(_aLiYunConfig, request.PersistentOps.Zone, () => ZoneEnum.HangZhou); var client = _aLiYunConfig.GetClient(zone); var bucket = Core.Tools.GetBucket(_aLiYunConfig, request.PersistentOps.Bucket); var setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucket); LifecycleRule lcr = new LifecycleRule() { ID = "delete " + request.Key + " files", Prefix = request.Key, Status = RuleStatus.Enabled, ExpriationDays = request.Expire }; setBucketLifecycleRequest.AddLifecycleRule(lcr); client.SetBucketLifecycle(setBucketLifecycleRequest); //调整生命周期 return new ExpireResultDto(true, request.Key, "success"); }, message => new ExpireResultDto(false, request.Key, message))); }
public void LifecycleWithTagsAdvancedSettingTest() { LifecycleRule rule1 = new LifecycleRule(); rule1.ID = "StandardExpireRule" + Guid.NewGuid(); rule1.Prefix = "test"; rule1.Status = RuleStatus.Enabled; rule1.ExpriationDays = 200; rule1.AbortMultipartUpload = new LifecycleRule.LifeCycleExpiration() { CreatedBeforeDate = DateTime.UtcNow.Date.AddDays(400) }; LifecycleRule rule2 = new LifecycleRule(); rule2.ID = "StandardExpireRule" + Guid.NewGuid(); rule2.Prefix = "test2"; rule2.Status = RuleStatus.Enabled; rule2.ExpriationDays = 400; rule2.Transitions = new LifecycleRule.LifeCycleTransition[2] { new LifecycleRule.LifeCycleTransition() { StorageClass = StorageClass.IA }, new LifecycleRule.LifeCycleTransition() { StorageClass = StorageClass.Archive } }; rule2.Transitions[0].LifeCycleExpiration.Days = 180; rule2.Transitions[1].LifeCycleExpiration.Days = 365; rule2.Tags = new Tag[2] { new Tag() { Key = "key1", Value = "value1" }, new Tag() { Key = "key2", Value = "value2" } }; LifecycleRule rule3 = new LifecycleRule(); rule3.ID = "StandardExpireRule" + Guid.NewGuid(); rule3.Prefix = "object"; rule3.Status = RuleStatus.Disabled; rule3.CreatedBeforeDate = DateTime.UtcNow.Date.AddDays(365); rule3.Tags = new Tag[3] { new Tag() { Key = "key3-1", Value = "value3-1" }, new Tag() { Key = "key3-2", Value = "value3-2" }, new Tag() { Key = "key3-3", Value = "value3-3" } }; SetBucketLifecycleRequest req = new SetBucketLifecycleRequest(_bucketName); req.AddLifecycleRule(rule1); req.AddLifecycleRule(rule2); req.AddLifecycleRule(rule3); _ossClient.SetBucketLifecycle(req); OssTestUtils.WaitForCacheExpire(); var rules = _ossClient.GetBucketLifecycle(_bucketName); Assert.IsTrue(rules.Count == 3); Assert.AreEqual(rules[0], rule1); Assert.AreEqual(rules[1], rule2); Assert.AreEqual(rules[2], rule3); Assert.AreEqual(rules[0].Tags, null); Assert.AreEqual(rules[1].Tags[0].Key, "key1"); Assert.AreEqual(rules[1].Tags[0].Value, "value1"); Assert.AreEqual(rules[2].Tags[1].Key, "key3-2"); Assert.AreEqual(rules[2].Tags[1].Value, "value3-2"); _ossClient.DeleteBucketLifecycle(_bucketName); }
public static SetBucketLifecycleCommand Create(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, SetBucketLifecycleRequest setBucketLifecycleRequest) { return new SetBucketLifecycleCommand(client, endpoint, context, bucketName, setBucketLifecycleRequest); }
/// <summary> /// 设置桶的生命周期配置。 /// </summary> /// <param name="request">设置桶生命周期配置的请求参数。</param> /// <returns>设置桶生命周期配置的响应结果。</returns> public SetBucketLifecycleResponse SetBucketLifecycle(SetBucketLifecycleRequest request) { return(this.DoRequest <SetBucketLifecycleRequest, SetBucketLifecycleResponse>(request)); }
public static SetBucketLifecycleCommand Create(IServiceClient client, Uri endpoint, ExecutionContext context, string bucketName, SetBucketLifecycleRequest setBucketLifecycleRequest) { return(new SetBucketLifecycleCommand(client, endpoint, context, bucketName, setBucketLifecycleRequest)); }
public void LifecycleWithVersioningSettingTest() { var bucketName = _bucketName; LifecycleRule rule1 = new LifecycleRule(); rule1.ID = "rule1"; rule1.Prefix = "test1"; rule1.Status = RuleStatus.Enabled; rule1.ExpriationDays = 200; LifecycleRule rule2 = new LifecycleRule(); rule2.ID = "rule2"; rule2.Prefix = "test2"; rule2.Status = RuleStatus.Enabled; rule2.ExpriationDays = 400; rule2.Transitions = new LifecycleRule.LifeCycleTransition[2] { new LifecycleRule.LifeCycleTransition() { StorageClass = StorageClass.IA }, new LifecycleRule.LifeCycleTransition() { StorageClass = StorageClass.Archive } }; rule2.Transitions[0].LifeCycleExpiration.Days = 180; rule2.Transitions[1].LifeCycleExpiration.Days = 365; LifecycleRule rule3 = new LifecycleRule(); rule3.ID = "delete example"; rule3.Prefix = "object"; rule3.Status = RuleStatus.Disabled; rule3.ExpiredObjectDeleteMarker = true; rule3.NoncurrentVersionExpiration = new LifecycleRule.LifeCycleNoncurrentVersionExpiration() { NoncurrentDays = 200 }; rule3.NoncurrentVersionTransitions = new LifecycleRule.LifeCycleNoncurrentVersionTransition[2] { new LifecycleRule.LifeCycleNoncurrentVersionTransition() { StorageClass = StorageClass.IA }, new LifecycleRule.LifeCycleNoncurrentVersionTransition() { StorageClass = StorageClass.Archive } }; rule3.NoncurrentVersionTransitions[0].NoncurrentDays = 90; rule3.NoncurrentVersionTransitions[1].NoncurrentDays = 180; SetBucketLifecycleRequest req = new SetBucketLifecycleRequest(bucketName); req.AddLifecycleRule(rule1); req.AddLifecycleRule(rule2); req.AddLifecycleRule(rule3); _ossClient.SetBucketLifecycle(req); OssTestUtils.WaitForCacheExpire(1); var rules = _ossClient.GetBucketLifecycle(bucketName); Assert.IsTrue(rules.Count == 3); Assert.AreEqual(rules[0], rule1); Assert.AreEqual(rules[1], rule2); Assert.AreEqual(rules[2], rule3); //Only ExpiredObjectDeleteMarker LifecycleRule rule4 = new LifecycleRule(); rule4.ID = "only delete marker"; rule4.Prefix = "test1"; rule4.Status = RuleStatus.Enabled; rule4.ExpiredObjectDeleteMarker = true; req = new SetBucketLifecycleRequest(bucketName); req.AddLifecycleRule(rule4); _ossClient.SetBucketLifecycle(req); OssTestUtils.WaitForCacheExpire(1); rules = _ossClient.GetBucketLifecycle(bucketName); Assert.IsTrue(rules.Count == 1); Assert.AreEqual(rules[0], rule4); Assert.AreEqual(rules[0].ExpiredObjectDeleteMarker, true); //Only NoncurrentVersionTransition LifecycleRule rule5 = new LifecycleRule(); rule5.ID = "only NoncurrentVersionTransition"; rule5.Prefix = "test1"; rule5.Status = RuleStatus.Enabled; rule5.NoncurrentVersionTransitions = new LifecycleRule.LifeCycleNoncurrentVersionTransition[2] { new LifecycleRule.LifeCycleNoncurrentVersionTransition() { StorageClass = StorageClass.IA, NoncurrentDays = 90 }, new LifecycleRule.LifeCycleNoncurrentVersionTransition() { StorageClass = StorageClass.Archive, NoncurrentDays = 180 } }; req = new SetBucketLifecycleRequest(bucketName); req.AddLifecycleRule(rule5); _ossClient.SetBucketLifecycle(req); OssTestUtils.WaitForCacheExpire(1); rules = _ossClient.GetBucketLifecycle(bucketName); Assert.IsTrue(rules.Count == 1); Assert.AreEqual(rules[0], rule5); Assert.AreEqual(rules[0].ExpiredObjectDeleteMarker.HasValue, false); Assert.AreEqual(rules[0].NoncurrentVersionTransitions[0].NoncurrentDays, 90); Assert.AreEqual(rules[0].NoncurrentVersionTransitions[0].StorageClass, StorageClass.IA); Assert.AreEqual(rules[0].NoncurrentVersionTransitions[1].NoncurrentDays, 180); Assert.AreEqual(rules[0].NoncurrentVersionTransitions[1].StorageClass, StorageClass.Archive); //Only NoncurrentVersionExpiration LifecycleRule rule6 = new LifecycleRule(); rule6.ID = "only NoncurrentVersionExpiration"; rule6.Prefix = "test1"; rule6.Status = RuleStatus.Enabled; rule6.NoncurrentVersionExpiration = new LifecycleRule.LifeCycleNoncurrentVersionExpiration() { NoncurrentDays = 100 }; req = new SetBucketLifecycleRequest(bucketName); req.AddLifecycleRule(rule6); _ossClient.SetBucketLifecycle(req); OssTestUtils.WaitForCacheExpire(1); rules = _ossClient.GetBucketLifecycle(bucketName); Assert.IsTrue(rules.Count == 1); Assert.AreEqual(rules[0], rule6); Assert.AreEqual(rules[0].NoncurrentVersionExpiration.NoncurrentDays, 100); _ossClient.DeleteBucketLifecycle(bucketName); }
/// <summary> /// Start the asynchronous request for setting the bucket lifecycle rules. /// </summary> /// <param name="request">Parameters in a request for setting the bucket lifecycle rules</param> /// <param name="callback">Asynchronous request callback function</param> /// <param name="state">Asynchronous request status object</param> /// <returns>Response to the asynchronous request</returns> public IAsyncResult BeginSetBucketLifecycle(SetBucketLifecycleRequest request, AsyncCallback callback, object state) { return(this.BeginDoRequest <SetBucketLifecycleRequest>(request, callback, state)); }