更新时间:2022-02-10 GMT+08:00
设置桶的生命周期配置
功能说明
配置桶的生命周期规则,实现定时转换桶中对象的存储类型,以及定时删除桶中对象的功能。
方法定义
func (obsClient ObsClient) SetBucketLifecycleConfiguration(input *SetBucketLifecycleConfigurationInput) (output *BaseModel, err error)
使用带授权信息URL的方法定义
func (obsClient ObsClient) SetBucketLifecycleConfigurationWithSignedUrl(signedUrl string, actualSignedRequestHeaders http.Header, data io.Reader) (output *BaseModel, err error)
请求参数
|
参数名 |
类型 |
约束 |
|---|---|---|
|
input |
必选 |
返回结果
|
参数名 |
类型 |
|---|---|
|
output |
|
|
err |
error |
代码样例
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)
}
}
}
父主题: 桶相关接口