获取桶策略

Bucket是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。本文介绍如何获取桶(Bucket)策略。

  • GetBucketPolicy

GetBucketPolicy操作用于获取bucket的policy,policy配置功能可以使用户根据需求更精确地定义桶的访问策略。bucket的拥有者可以查看bucket的policy信息。

代码示例:

// 获取桶的策略信息
func GetBucketPolicy(svc *s3.S3) {
    getBucketPolicyInput := &s3.GetBucketPolicyInput{
        Bucket: aws.String("exampleBucket"),
    }

    getBucketPolicyOutput, err := svc.GetBucketPolicy(getBucketPolicyInput)
    if err != nil {
        fmt.Printf("fail to get policy of bucket. %v\n", err)
        return
    }
    fmt.Printf("policy of bucket: %v\n", *getBucketPolicyOutput.Policy)
}

GetBucketPolicyInput可设置的参数如下:

参数 类型 说明 是否必要
Bucket *string 桶的名称。

GetBucketPolicyOutput返回的属性如下:

属性名 类型 说明
Policy *string JSON格式的桶策略信息。
  • GetBucketPolicyRequest

GetBucketPolicyRequest操作首先生成一个"request.Request"对象,该对象是一个执行GetBucketPolicy操作的请求。通过调用Request对象的Send方法完成获取bucket policy信息的操作。该方法可以生成定制化的请求,例如自定义请求头部请求超时重试设置。

代码示例:

func GetBucketPolicyRequest(svc *s3.S3) {
    getBucketPolicyInput := &s3.GetBucketPolicyInput{
        Bucket: aws.String("exampleBucket"),
    }
    req, resp := svc.GetBucketPolicyRequest(getBucketPolicyInput)

    err := req.Send()
    if err != nil {
        fmt.Printf("fail to get bucket policy. %v\n", err)
    } else {
        fmt.Println(resp)
    }
}

响应结果:

HTTP状态 响应码 描述
200 Success 操作成功。
403 AccessDenied 用户没有权限执行操作。
404 NoSuchBucket 操作指定的桶不存在。