获取版本控制信息
Bucket是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。本文介绍如何获取版本控制信息。
-
GetBucketVersioning
GetBucketVersioning操作可以获取bucket的版本控制状态信息。只有bucket的拥有者才能获取到bucket的版本控制信息。
每个bucket的版本控制有三个状态:未开启、开启(Enabled)和暂停(Suspended)版本控制,如果bucket从来没有被设置过版本控制状态,那么该bucket默认为未开启版本控制状态,执行GetBucketVersioning操作不能获取任何版本控制信息。
代码示例:
// 获取桶的版本控制状态信息
func GetBucketVersioning(svc *s3.S3){
getBucketVersioningInput := &s3.GetBucketVersioningInput{
Bucket: aws.String("exampleBucket"),
}
getBucketVersioningOutput, err := svc.GetBucketVersioning(getBucketVersioningInput)
if err != nil {
fmt.Printf("fail to get bucket versioning. %v\n", err)
return
}
fmt.Println(getBucketVersioningOutput)
}
GetBucketVersioningInput可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
Bucket | *string | bucket的名称。 | 是 |
GetBucketVersioningOutput返回的属性如下:
属性名 | 类型 | 说明 |
---|---|---|
Status | *string | 桶的版本控制设置状态。 |
-
GetBucketVersioningRequest
GetBucketVersioningRequest操作首先生成一个"request.Request"对象,该对象是一个执行GetBucketVersioning操作的请求。通过调用Request对象的Send方法完成获取bucket版本控制配置信息的操作。该方法可以生成定制化的请求,例如自定义请求头部请求超时重试设置。
代码示例:
func GetBucketVersioningRequest(svc *s3.S3) {
getBucketVersioningInput := &s3.GetBucketVersioningInput{
Bucket: aws.String("exampleBucket"),
}
req, resp := svc.GetBucketVersioningRequest(getBucketVersioningInput)
err := req.Send()
if err != nil {
fmt.Printf("fail to get bucket versioning. %v\n", err)
} else {
fmt.Println(resp)
}
}
}
响应结果:
HTTP状态 | 响应码 | 描述 |
---|---|---|
200 | Success | 获取bucket的版本控制信息成功。如果操作指定的bucket不存在也返回200状态码,但是返回结果为空。 |
403 | AccessDenied | 用户没有权限执行操作。 |