Skip to content

Commit

Permalink
Add more friendly error message for policy object
Browse files Browse the repository at this point in the history
  • Loading branch information
Roman Kalashnikov committed Mar 22, 2019
1 parent 89e45d0 commit 9c416c3
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 2 deletions.
8 changes: 8 additions & 0 deletions cmd/api-errors.go
Expand Up @@ -65,6 +65,7 @@ const (
ErrBadDigest
ErrEntityTooSmall
ErrEntityTooLarge
ErrPolicyTooLarge
ErrIncompleteBody
ErrInternalError
ErrInvalidAccessKeyID
Expand Down Expand Up @@ -399,6 +400,11 @@ var errorCodes = errorCodeMap{
Description: "Your proposed upload exceeds the maximum allowed object size.",
HTTPStatusCode: http.StatusBadRequest,
},
ErrPolicyTooLarge: {
Code: "PolicyTooLare",
Description: "Policy object exceeds the maximum allowed object size.",
HTTPStatusCode: http.StatusBadRequest,
},
ErrIncompleteBody: {
Code: "IncompleteBody",
Description: "You did not provide the number of bytes specified by the Content-Length HTTP header.",
Expand Down Expand Up @@ -1500,6 +1506,8 @@ func toAPIErrorCode(ctx context.Context, err error) (apiErr APIErrorCode) {
apiErr = ErrInvalidRange
case errDataTooLarge:
apiErr = ErrEntityTooLarge
case errPolicyTooLarge:
apiErr = ErrPolicyTooLarge
case errDataTooSmall:
apiErr = ErrEntityTooSmall
case auth.ErrInvalidAccessKeyLength:
Expand Down
2 changes: 1 addition & 1 deletion cmd/bucket-policy-handlers.go
Expand Up @@ -71,7 +71,7 @@ func (api objectAPIHandlers) PutBucketPolicyHandler(w http.ResponseWriter, r *ht

// Error out if Content-Length is beyond allowed size.
if r.ContentLength > maxBucketPolicySize {
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrEntityTooLarge), r.URL, guessIsBrowserReq(r))
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrPolicyTooLarge), r.URL, guessIsBrowserReq(r))
return
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/object-api-errors.go
Expand Up @@ -76,7 +76,7 @@ func toObjectErr(err error, params ...string) error {
Object: params[1],
}
}
case errDataTooLarge:
case errDataTooLarge,errPolicyTooLarge:
if len(params) >= 2 {
err = ObjectTooLarge{
Bucket: params[0],
Expand Down
3 changes: 3 additions & 0 deletions cmd/typed-errors.go
Expand Up @@ -38,6 +38,9 @@ var errSizeUnspecified = errors.New("Data size is unspecified")
// When upload object size is greater than 5G in a single PUT/POST operation.
var errDataTooLarge = errors.New("Object size larger than allowed limit")

// When policy object size is greater than 20K
var errPolicyTooLarge = errors.New("Policy object size larger than allowed limit")

// When upload object size is less than what was expected.
var errDataTooSmall = errors.New("Object size smaller than expected")

Expand Down

0 comments on commit 9c416c3

Please sign in to comment.