summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/minio/minio-go/api-get-policy.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/minio/minio-go/api-get-policy.go')
-rw-r--r--vendor/github.com/minio/minio-go/api-get-policy.go35
1 files changed, 23 insertions, 12 deletions
diff --git a/vendor/github.com/minio/minio-go/api-get-policy.go b/vendor/github.com/minio/minio-go/api-get-policy.go
index da0a409cd..7491df330 100644
--- a/vendor/github.com/minio/minio-go/api-get-policy.go
+++ b/vendor/github.com/minio/minio-go/api-get-policy.go
@@ -34,8 +34,12 @@ func (c Client) GetBucketPolicy(bucketName, objectPrefix string) (bucketPolicy p
if err := isValidObjectPrefix(objectPrefix); err != nil {
return policy.BucketPolicyNone, err
}
- policyInfo, err := c.getBucketPolicy(bucketName, objectPrefix)
+ policyInfo, err := c.getBucketPolicy(bucketName)
if err != nil {
+ errResponse := ToErrorResponse(err)
+ if errResponse.Code == "NoSuchBucketPolicy" {
+ return policy.BucketPolicyNone, nil
+ }
return policy.BucketPolicyNone, err
}
return policy.GetPolicy(policyInfo.Statements, bucketName, objectPrefix), nil
@@ -50,15 +54,24 @@ func (c Client) ListBucketPolicies(bucketName, objectPrefix string) (bucketPolic
if err := isValidObjectPrefix(objectPrefix); err != nil {
return map[string]policy.BucketPolicy{}, err
}
- policyInfo, err := c.getBucketPolicy(bucketName, objectPrefix)
+ policyInfo, err := c.getBucketPolicy(bucketName)
if err != nil {
+ errResponse := ToErrorResponse(err)
+ if errResponse.Code == "NoSuchBucketPolicy" {
+ return map[string]policy.BucketPolicy{}, nil
+ }
return map[string]policy.BucketPolicy{}, err
}
return policy.GetPolicies(policyInfo.Statements, bucketName), nil
}
+// Default empty bucket access policy.
+var emptyBucketAccessPolicy = policy.BucketAccessPolicy{
+ Version: "2012-10-17",
+}
+
// Request server for current bucket policy.
-func (c Client) getBucketPolicy(bucketName string, objectPrefix string) (policy.BucketAccessPolicy, error) {
+func (c Client) getBucketPolicy(bucketName string) (policy.BucketAccessPolicy, error) {
// Get resources properly escaped and lined up before
// using them in http request.
urlValues := make(url.Values)
@@ -66,27 +79,25 @@ func (c Client) getBucketPolicy(bucketName string, objectPrefix string) (policy.
// Execute GET on bucket to list objects.
resp, err := c.executeMethod("GET", requestMetadata{
- bucketName: bucketName,
- queryValues: urlValues,
+ bucketName: bucketName,
+ queryValues: urlValues,
+ contentSHA256Bytes: emptySHA256,
})
defer closeResponse(resp)
if err != nil {
- return policy.BucketAccessPolicy{}, err
+ return emptyBucketAccessPolicy, err
}
if resp != nil {
if resp.StatusCode != http.StatusOK {
- errResponse := httpRespToErrorResponse(resp, bucketName, "")
- if ToErrorResponse(errResponse).Code == "NoSuchBucketPolicy" {
- return policy.BucketAccessPolicy{Version: "2012-10-17"}, nil
- }
- return policy.BucketAccessPolicy{}, errResponse
+ return emptyBucketAccessPolicy, httpRespToErrorResponse(resp, bucketName, "")
}
}
+
bucketPolicyBuf, err := ioutil.ReadAll(resp.Body)
if err != nil {
- return policy.BucketAccessPolicy{}, err
+ return emptyBucketAccessPolicy, err
}
policy := policy.BucketAccessPolicy{}