diff --git a/src/Qiniu/Storage/BucketManager.cs b/src/Qiniu/Storage/BucketManager.cs index 36aebed..b4ff9cc 100644 --- a/src/Qiniu/Storage/BucketManager.cs +++ b/src/Qiniu/Storage/BucketManager.cs @@ -707,7 +707,8 @@ public HttpResult SetObjectLifecycle( int toIaAfterDays = 0, int toArchiveAfterDays = 0, int toDeepArchiveAfterDays = 0, - int deleteAfterDays = 0 + int deleteAfterDays = 0, + int toArchiveIrAfterDays = 0 ) { return SetObjectLifecycle( @@ -717,7 +718,8 @@ public HttpResult SetObjectLifecycle( toIaAfterDays, toArchiveAfterDays, toDeepArchiveAfterDays, - deleteAfterDays + deleteAfterDays, + toArchiveIrAfterDays ); } @@ -728,6 +730,7 @@ public HttpResult SetObjectLifecycle( /// 文件key /// 匹配条件,只有条件匹配才会设置成功,目前支持:hash、mime、fsize、putTime /// 多少天后将文件转为低频存储,设置为 -1 表示取消已设置的转低频存储的生命周期规则,0 表示不修改转低频生命周期规则。 + /// 多少天后将文件转为归档直读存储,设置为 -1 表示取消已设置的转归档直读存储的生命周期规则,0 表示不修改转归档直读生命周期规则。 /// 多少天后将文件转为归档存储,设置为 -1 表示取消已设置的转归档存储的生命周期规则,0 表示不修改转归档生命周期规则。 /// 多少天后将文件转为深度归档存储,设置为 -1 表示取消已设置的转深度归档存储的生命周期规则,0 表示不修改转深度归档生命周期规则。 /// 多少天后将文件删除,设置为 -1 表示取消已设置的删除存储的生命周期规则,0 表示不修改删除存储的生命周期规则。 @@ -739,7 +742,8 @@ public HttpResult SetObjectLifecycle( int toIaAfterDays = 0, int toArchiveAfterDays = 0, int toDeepArchiveAfterDays = 0, - int deleteAfterDays = 0 + int deleteAfterDays = 0, + int toArchiveIrAfterDays = 0 ) { HttpResult result = new HttpResult(); @@ -747,7 +751,7 @@ public HttpResult SetObjectLifecycle( try { string updateUrl = string.Format("{0}{1}", this.config.RsHost(this.mac.AccessKey, bucket), - SetObjectLifecycleOp(bucket, key, cond, toIaAfterDays, toArchiveAfterDays, toDeepArchiveAfterDays, deleteAfterDays)); + SetObjectLifecycleOp(bucket, key, cond, toIaAfterDays, toArchiveAfterDays, toDeepArchiveAfterDays, deleteAfterDays, toArchiveIrAfterDays)); StringDictionary headers = new StringDictionary { {"Content-Type", ContentType.WWW_FORM_URLENC} @@ -954,6 +958,7 @@ public string DeleteAfterDaysOp(string bucket, string key, int deleteAfterDays) /// 文件key /// 匹配条件,只有条件匹配才会设置成功,目前支持:hash、mime、fsize、putTime /// 多少天后将文件转为低频存储,设置为 -1 表示取消已设置的转低频存储的生命周期规则,0 表示不修改转低频生命周期规则。 + /// 多少天后将文件转为归档直读存储,设置为 -1 表示取消已设置的转归档直读存储的生命周期规则,0 表示不修改转归档直读生命周期规则。 /// 多少天后将文件转为归档存储,设置为 -1 表示取消已设置的转归档存储的生命周期规则,0 表示不修改转归档生命周期规则。 /// 多少天后将文件转为深度归档存储,设置为 -1 表示取消已设置的转深度归档存储的生命周期规则,0 表示不修改转深度归档生命周期规则。 /// 多少天后将文件删除,设置为 -1 表示取消已设置的删除存储的生命周期规则,0 表示不修改删除存储的生命周期规则。 @@ -965,13 +970,14 @@ public string SetObjectLifecycleOp( int toIaAfterDays = 0, int toArchiveAfterDays = 0, int toDeepArchiveAfterDays = 0, - int deleteAfterDays = 0 + int deleteAfterDays = 0, + int toArchiveIrAfterDays = 0 ) { string entry = Base64.UrlSafeBase64Encode(bucket, key); string result = string.Format( - "/lifecycle/{0}/toIAAfterDays/{1}/toArchiveAfterDays/{2}/toDeepArchiveAfterDays/{3}/deleteAfterDays/{4}", - entry, toIaAfterDays, toArchiveAfterDays, toDeepArchiveAfterDays, deleteAfterDays); + "/lifecycle/{0}/toIAAfterDays/{1}/toArchiveIRAfterDays/{2}/toArchiveAfterDays/{3}/toDeepArchiveAfterDays/{4}/deleteAfterDays/{5}", + entry, toIaAfterDays, toArchiveIrAfterDays, toArchiveAfterDays, toDeepArchiveAfterDays, deleteAfterDays); if (cond != null) { diff --git a/src/Qiniu/Storage/FileInfo.cs b/src/Qiniu/Storage/FileInfo.cs index 4a75d22..3d079be 100644 --- a/src/Qiniu/Storage/FileInfo.cs +++ b/src/Qiniu/Storage/FileInfo.cs @@ -79,9 +79,17 @@ public class FileInfo /// 文件在设置过期时间后才会返回该字段。 /// 历史文件过期仍会自动删除,但不会返回该字段,重新设置文件过期时间可使历史文件返回该字段。 /// - [JsonProperty("TransitionToIA", NullValueHandling = NullValueHandling.Ignore)] + [JsonProperty("transitionToIA", NullValueHandling = NullValueHandling.Ignore)] public int TransitionToIa { get; set; } + /// + /// 文件生命周期中转为归档直读存储的日期,Unix 时间戳格式。 + /// 文件在设置过期时间后才会返回该字段。 + /// 历史文件过期仍会自动删除,但不会返回该字段,重新设置文件过期时间可使历史文件返回该字段。 + /// + [JsonProperty("transitionToArchiveIR", NullValueHandling = NullValueHandling.Ignore)] + public int TransitionToArchiveIr { get; set; } + /// /// 文件生命周期中转为归档存储的日期,Unix 时间戳格式。 /// 文件在设置过期时间后才会返回该字段。 diff --git a/src/QiniuTests/Storage/BucketManagerTests.cs b/src/QiniuTests/Storage/BucketManagerTests.cs index 7677ffd..a22d596 100644 --- a/src/QiniuTests/Storage/BucketManagerTests.cs +++ b/src/QiniuTests/Storage/BucketManagerTests.cs @@ -267,7 +267,8 @@ public void SetObjectLifecycleTest() 10, 20, 30, - 40); + 40, + 15); if (ret.Code != (int)HttpCode.OK) { Assert.Fail("deleteAfterDays error: " + ret.ToString()); @@ -279,6 +280,7 @@ public void SetObjectLifecycleTest() Assert.Fail("stat error: " + statRet.ToString()); } Assert.True(statRet.Result.TransitionToIa > 0); + Assert.True(statRet.Result.TransitionToArchiveIr > 0); Assert.True(statRet.Result.TransitionToArchive > 0); Assert.True(statRet.Result.TransitionToDeepArchive > 0); Assert.True(statRet.Result.Expiration > 0); @@ -318,7 +320,8 @@ public void SetObjectLifecycleCondTest() 10, 20, 30, - 40); + 40, + 15); if (ret.Code != (int)HttpCode.OK) { Assert.Fail("deleteAfterDays error: " + ret.ToString());