Updated on 2022-02-10 GMT+08:00

GET Bucket lifecycle

API Description

You can use this API to obtain the lifecycle rules of a bucket.

Method Definition

func (obsClient ObsClient) GetBucketLifecycleConfiguration(bucketName string) (output *GetBucketLifecycleConfigurationOutput, err error)

Method Definition If a Signed URL Is Used

func (obsClient ObsClient) GetBucketLifecycleConfigurationWithSignedUrl(signedUrl string, actualSignedRequestHeaders http.Header) (output *GetBucketLifecycleConfigurationOutput, err error)

Request Parameter

Field

Type

Optional or Mandatory

Description

bucketName

string

Mandatory

Bucket name

Returned Result

Field

Type

output

*GetBucketPolicyOutput

err

error

Sample Code

func main() {
       output, err := obsClient.GetBucketLifecycleConfiguration("bucketname")
       if err == nil {
              fmt.Printf("RequestId:%s\n", output.RequestId)
              for index, lifecycleRule := range output.LifecycleRules {
                     fmt.Printf("LifecycleRule[%d]:\n", index)
                     fmt.Printf("ID:%s, Prefix:%s, Status:%s\n", lifecycleRule.ID, lifecycleRule.Prefix, lifecycleRule.Status)

                     date := ""
                     for _, transition := range lifecycleRule.Transitions {
                           if !transition.Date.IsZero() {
                                  date = transition.Date.String()
                           }
                           fmt.Printf("transition.StorageClass:%s, Transition.Date:%s, Transition.Days:%d\n", transition.StorageClass, date, transition.Days)
                     }

                     date = ""
                     if !lifecycleRule.Expiration.Date.IsZero() {
                           date = lifecycleRule.Expiration.Date.String()
                     }
                     fmt.Printf("Expiration.Date:%s, Expiration.Days:%d\n", lifecycleRule.Expiration.Date, lifecycleRule.Expiration.Days)

                     for _, noncurrentVersionTransition := range lifecycleRule.NoncurrentVersionTransitions {
                           fmt.Printf("noncurrentVersionTransition.StorageClass:%s, noncurrentVersionTransition.NoncurrentDays:%d\n",
                                  noncurrentVersionTransition.StorageClass, noncurrentVersionTransition.NoncurrentDays)
                     }
                     fmt.Printf("NoncurrentVersionExpiration.NoncurrentDays:%d\n", lifecycleRule.NoncurrentVersionExpiration.NoncurrentDays)
              }
       } else {
              if obsError, ok := err.(obs.ObsError); ok {
                     fmt.Println(obsError.Code)
                     fmt.Println(obsError.Message)
              } else {
                     fmt.Println(err)
              }
       }
}