获取桶信息
Bucket是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。本文介绍如何获取桶(Bucket)信息。
-
HeadBucket
HeadBucket操作查询bucket是否存在,用户可以使用该操作查询一个bucket是否存在且是否拥有对其访问权限。执行HeadBucket操作需要具有执行ListBucket操作的权限,bucket的拥有者默认拥有该权限并且可以将该权限授予其他用户。
代码示例:
// 查询一个bucket是否存在并且拥有对其访问权限
func HeadBucket(svc *s3.S3) {
headBucketInput := &s3.HeadBucketInput{
Bucket: aws.String("exampleBucket"),
}
_, err := svc.HeadBucket(headBucketInput)
if err != nil {
fmt.Printf("fail to head bucket, %v\n", err)
return
}
}
HeadBucketInput可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
Bucket | *string | bucket的名称。 | 是 |
-
HeadBucketRequest
HeadBucketRequest 操作首先生成一个"request.Request"对象,该对象是一个执行HeadBucket操作的请求。通过调用Request对象的Send方法完成查询bucket的操作。该方法可以生成定制化的请求,例如自定义请求头部请求超时重试设置。
代码示例:
func HeadBucketRequest(svc *s3.S3) {
headBucketInput := &s3.HeadBucketInput{
Bucket: aws.String("exampleBucket"),
}
req, resp := svc.HeadBucketRequest(headBucketInput)
err := req.Send()
if err != nil {
fmt.Printf("fail to head bucket. %v\n", err)
} else {
fmt.Println(resp)
}
}
响应结果:
HTTP状态 | 响应码 | 描述 |
---|---|---|
200 | Success | bucket存在且可以访问。 |
403 | Forbidden | 用户没有权限执行操作。 |
404 | NoSuchBucket | 操作指定的bucket不存在。 |