获取桶列表
Bucket是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。本文介绍如何显示可用的桶(Bucket)列表。
- ListBuckets
ListBuckets操作用于显示可用的bucket。
代码示例:
// 查询用户的全部bucket
func ListBuckets(svc *s3.S3) {
listBucketsInput := &s3.ListBucketsInput{}
listBucketsOutput, err := svc.ListBuckets(listBucketsInput)
if err != nil {
fmt.Println("Failed to list buckets", err)
}
for _, b := range listBucketsOutput.Buckets {
fmt.Printf("* %s created on %s\n", aws.StringValue(b.Name), aws.TimeValue(b.CreationDate))
}
}
ListBucketsOutput返回的属性如下:
属性名 | 类型 | 说明 |
---|---|---|
Buckets | []*Bucket | bucket信息的数组,包含了每个bucket的名字和创建时间。 |
Owner | *Owner | bucket的拥有者信息。 |
- ListBucketsRequest
ListBucketsRequest操作首先生成一个"request.Request"对象,该对象是一个执行ListBucket操作的请求。通过调用Request对象的Send方法完成列出可用bucket的操作。该方法可以生成定制化的请求,例如自定义请求头部请求超时重试设置。
代码示例:
func ListBucketRequest(svc *s3.S3) {
listBucketsInput := &s3.ListBucketsInput{}
req, resp := svc.ListBucketsRequest(listBucketsInput)
err := req.Send()
if err != nil {
fmt.Printf("fail to list bucket. %v\n", err)
} else {
fmt.Println(resp)
}
}
响应结果:
HTTP状态 | 响应码 | 描述 |
---|---|---|
200 | Success | 操作成功。 |
403 | AccessDenied | 用户没有权限执行操作。 |