PUT Bucket lifecycle
API Description
You can use this API to set lifecycle rules for a bucket, to periodically transit storage classes of objects and delete objects in the bucket.
Method Definition
func (obsClient ObsClient) SetBucketLifecycleConfiguration(input *SetBucketLifecycleConfigurationInput) (output *BaseModel, err error)
Method Definition If a Signed URL Is Used
func (obsClient ObsClient) SetBucketLifecycleConfigurationWithSignedUrl(signedUrl string, actualSignedRequestHeaders http.Header, data io.Reader) (output *BaseModel, err error)
Request Parameter
| Field | Type | Optional or Mandatory |
|---|---|---|
| input | Mandatory |
Returned Result
| Field | Type |
|---|---|
| output | |
| err | error |
Sample Code
func main() {
input := &obs.SetBucketLifecycleConfigurationInput{}
input.Bucket = "bucketname"
var lifecycleRules [2]obs.LifecycleRule
lifecycleRule0 := obs.LifecycleRule{}
lifecycleRule0.ID = "rule0"
lifecycleRule0.Prefix = "prefix0"
lifecycleRule0.Status = obs.RuleStatusEnabled
var transitions [2]obs.Transition
transitions[0] = obs.Transition{}
transitions[0].Days = 30
transitions[0].StorageClass = obs.StorageClassWarm
transitions[1] = obs.Transition{}
transitions[1].Days = 60
transitions[1].StorageClass = obs.StorageClassCold
lifecycleRule0.Transitions = transitions[:]
lifecycleRule0.Expiration.Days = 100
lifecycleRule0.NoncurrentVersionExpiration.NoncurrentDays = 20
lifecycleRules[0] = lifecycleRule0
lifecycleRule1 := obs.LifecycleRule{}
lifecycleRule1.Status = obs.RuleStatusEnabled
lifecycleRule1.ID = "rule1"
lifecycleRule1.Prefix = "prefix1"
lifecycleRule1.Expiration.Date = time.Now().Add(time.Duration(24) * time.Hour)
var noncurrentTransitions [2]obs.NoncurrentVersionTransition
noncurrentTransitions[0] = obs.NoncurrentVersionTransition{}
noncurrentTransitions[0].NoncurrentDays = 30
noncurrentTransitions[0].StorageClass = obs.StorageClassWarm
noncurrentTransitions[1] = obs.NoncurrentVersionTransition{}
noncurrentTransitions[1].NoncurrentDays = 60
noncurrentTransitions[1].StorageClass = obs.StorageClassCold
lifecycleRule1.NoncurrentVersionTransitions = noncurrentTransitions[:]
lifecycleRules[1] = lifecycleRule1
input.LifecycleRules = lifecycleRules[:]
output, err := obsClient.SetBucketLifecycleConfiguration(input)
if err == nil {
fmt.Printf("RequestId:%s\n", output.RequestId)
} else {
if obsError, ok := err.(obs.ObsError); ok {
fmt.Println(obsError.Code)
fmt.Println(obsError.Message)
} else {
fmt.Println(err)
}
}
} Last Article: DELETE Bucket policy
Next Article: GET Bucket lifecycle
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.