Skip to content

Commit 77fb078

Browse files
return appropriate error type for generic handling (#1981)
1 parent 1ff6b60 commit 77fb078

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

api-get-object.go

+20-4
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,18 @@ import (
3232
func (c *Client) GetObject(ctx context.Context, bucketName, objectName string, opts GetObjectOptions) (*Object, error) {
3333
// Input validation.
3434
if err := s3utils.CheckValidBucketName(bucketName); err != nil {
35-
return nil, err
35+
return nil, ErrorResponse{
36+
StatusCode: http.StatusBadRequest,
37+
Code: "InvalidBucketName",
38+
Message: err.Error(),
39+
}
3640
}
3741
if err := s3utils.CheckValidObjectName(objectName); err != nil {
38-
return nil, err
42+
return nil, ErrorResponse{
43+
StatusCode: http.StatusBadRequest,
44+
Code: "XMinioInvalidObjectName",
45+
Message: err.Error(),
46+
}
3947
}
4048

4149
gctx, cancel := context.WithCancel(ctx)
@@ -649,10 +657,18 @@ func newObject(ctx context.Context, cancel context.CancelFunc, reqCh chan<- getR
649657
func (c *Client) getObject(ctx context.Context, bucketName, objectName string, opts GetObjectOptions) (io.ReadCloser, ObjectInfo, http.Header, error) {
650658
// Validate input arguments.
651659
if err := s3utils.CheckValidBucketName(bucketName); err != nil {
652-
return nil, ObjectInfo{}, nil, err
660+
return nil, ObjectInfo{}, nil, ErrorResponse{
661+
StatusCode: http.StatusBadRequest,
662+
Code: "InvalidBucketName",
663+
Message: err.Error(),
664+
}
653665
}
654666
if err := s3utils.CheckValidObjectName(objectName); err != nil {
655-
return nil, ObjectInfo{}, nil, err
667+
return nil, ObjectInfo{}, nil, ErrorResponse{
668+
StatusCode: http.StatusBadRequest,
669+
Code: "XMinioInvalidObjectName",
670+
Message: err.Error(),
671+
}
656672
}
657673

658674
// Execute GET on objectName.

api-stat.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,18 @@ func (c *Client) BucketExists(ctx context.Context, bucketName string) (bool, err
6161
func (c *Client) StatObject(ctx context.Context, bucketName, objectName string, opts StatObjectOptions) (ObjectInfo, error) {
6262
// Input validation.
6363
if err := s3utils.CheckValidBucketName(bucketName); err != nil {
64-
return ObjectInfo{}, err
64+
return ObjectInfo{}, ErrorResponse{
65+
StatusCode: http.StatusBadRequest,
66+
Code: "InvalidBucketName",
67+
Message: err.Error(),
68+
}
6569
}
6670
if err := s3utils.CheckValidObjectName(objectName); err != nil {
67-
return ObjectInfo{}, err
71+
return ObjectInfo{}, ErrorResponse{
72+
StatusCode: http.StatusBadRequest,
73+
Code: "XMinioInvalidObjectName",
74+
Message: err.Error(),
75+
}
6876
}
6977
headers := opts.Header()
7078
if opts.Internal.ReplicationDeleteMarker {

0 commit comments

Comments
 (0)