设置版本控制
Bucket是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。本文介绍如何设置桶(Bucket)的版本控制状态。
- PutBucketVersioning
PutBucketVersioning操作可以设置bucket版本控制状态。bucket的版本控制状态可以设置为以下的值:
- Enabled:对bucket中的所有对象启用版本控制,之后每个添加到bucket中的对象都会被设置一个唯一的version ID。
- Suspended:关闭bucket的版本控制,之后每个添加到bucket中的对象的version ID会被设置为null。
代码示例:
// 设置桶的版本控制状态
func PutBucketVersioning(svc *s3.S3) {
putBucketVersioningInput := &s3.PutBucketVersioningInput{
Bucket: aws.String("exampleBucket"),
VersioningConfiguration: &s3.VersioningConfiguration{
Status: aws.String("Enabled"), //启用版本控制:Enabled,暂停版本控制:Suspended
},
}
_, err := svc.PutBucketVersioning(putBucketVersioningInput)
if err != nil {
fmt.Printf("fail to put bucket versioning. %v\n", err)
return
}
}
PutBucketVersioningInput可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
Bucket | *string | bucket的名称。 | 是 |
VersioningConfiguration | *VersioningConfiguration | 封装了设置版本控制状态的参数。 | 是 |
- PutBucketVersioningRequest
PutBucketVersioningRequest操作首先生成一个"request.Request"对象,该对象是一个执行PutBucketVersioning操作的请求。通过调用Request对象的Send方法完成配置bucket版本控制信息的操作。该方法可以生成定制化的请求,例如自定义请求头部请求超时重试设置。
代码示例:
func PutBucketVersioningRequest(svc *s3.S3) {
putBucketVersioningInput := &s3.PutBucketVersioningInput{
Bucket: aws.String("exampleBucket"),
VersioningConfiguration: &s3.VersioningConfiguration{
Status: aws.String("Enabled"), //启用版本控制
},
}
req, resp := svc.PutBucketVersioningRequest(putBucketVersioningInput)
err := req.Send()
if err != nil {
fmt.Printf("fail to put bucket versioning request. %v\n", err)
} else {
fmt.Println(resp)
}
}
响应结果:
HTTP状态 | 响应码 | 描述 |
---|---|---|
200 | Success | 操作成功。如果操作指定的bucket不存在也返回200状态码。 |
403 | AccessDenied | 用户没有权限执行操作。 |