获取桶列表

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 用户没有权限执行操作。