Browse Source

use new methods to create lifecycle rule

hangzws 6 years ago
parent
commit
af3db447cf
1 changed files with 26 additions and 10 deletions
  1. 26 10
      sample/bucket_lifecycle.go

+ 26 - 10
sample/bucket_lifecycle.go

@@ -21,36 +21,52 @@ func BucketLifecycleSample() {
 	}
 
 	// Case 1: Set the lifecycle. The rule ID is id1 and the applied objects' prefix is one and expired time is 11/11/2015
-	var rule1 = oss.BuildLifecycleRuleByDate("id1", "one", true, 2015, 11, 11)
-	var rules = []oss.LifecycleRule{rule1}
+	//var rule1 = oss.BuildLifecycleRuleByDate("id1", "one", true, 2015, 11, 11)
+	rule1, err := oss.NewLifecycleRuleByCreateBeforeDate("id1", "one", true, 2015, 11, 11, oss.LRTExpriration)
+	if err != nil {
+		HandleError(err)
+	}
+	var rules = []oss.LifecycleRule{*rule1}
 	err = client.SetBucketLifecycle(bucketName, rules)
 	if err != nil {
 		HandleError(err)
 	}
 
 	// Case 2: Set the lifecycle, The rule ID is id2 and the applied objects' prefix is two and the expired time is three days after the object created.
-	var rule2 = oss.BuildLifecycleRuleByDays("id2", "two", true, 3)
-	rules = []oss.LifecycleRule{rule2}
+	//var rule2 = oss.BuildLifecycleRuleByDays("id2", "two", true, 3)
+	rule2, err := oss.NewLifecleRuleByDays("id2", "two", true, 3, oss.LRTTransition, oss.StorageIA)
+	if err != nil {
+		HandleError(err)
+	}
+	rules = []oss.LifecycleRule{*rule2}
 	err = client.SetBucketLifecycle(bucketName, rules)
 	if err != nil {
 		HandleError(err)
 	}
 
-	// Case 3: Create two rules in the bucket for different objects. The rule with the same ID will be overwritten.
-	var rule3 = oss.BuildLifecycleRuleByDays("id1", "two", true, 365)
-	var rule4 = oss.BuildLifecycleRuleByDate("id2", "one", true, 2016, 11, 11)
-	rules = []oss.LifecycleRule{rule3, rule4}
+	// Get the bucket's lifecycle
+	lc, err := client.GetBucketLifecycle(bucketName)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("Bucket Lifecycle:", lc.Rules)
+
+	rule3, err := oss.NewLifecleRuleByDays("id3", "three", true, 3, oss.LRTAbortMultiPartUpload)
+	if err != nil {
+		HandleError(err)
+	}
+	rules = append(lc.Rules, *rule3)
 	err = client.SetBucketLifecycle(bucketName, rules)
 	if err != nil {
 		HandleError(err)
 	}
 
 	// Get the bucket's lifecycle
-	gbl, err := client.GetBucketLifecycle(bucketName)
+	lc, err = client.GetBucketLifecycle(bucketName)
 	if err != nil {
 		HandleError(err)
 	}
-	fmt.Println("Bucket Lifecycle:", gbl.Rules)
+	fmt.Println("Bucket Lifecycle:", lc.Rules)
 
 	// Delete bucket's Lifecycle
 	err = client.DeleteBucketLifecycle(bucketName)