Issue 154 (#169)

* fix: Fixes #154, Changed GetObject range error to InvalidRange
This commit is contained in:
Jon Austin
2023-07-27 22:05:40 +04:00
committed by GitHub
parent 77080328c1
commit bf33b9f5a2
3 changed files with 22 additions and 1 deletions

View File

@@ -56,7 +56,7 @@ func GetTimePtr(t time.Time) *time.Time {
}
var (
errInvalidRange = s3err.GetAPIError(s3err.ErrInvalidRequest)
errInvalidRange = s3err.GetAPIError(s3err.ErrInvalidRange)
)
// ParseRange parses input range header and returns startoffset, length, and

View File

@@ -1031,6 +1031,20 @@ func TestRangeGet(s *S3Conf) {
return
}
// Invalid range
invRange := "bytes=100-asd"
ctx, cancel = context.WithTimeout(context.Background(), shortTimeout)
_, err = s3client.GetObject(ctx, &s3.GetObjectInput{
Bucket: &bucket,
Key: &name,
Range: &invRange,
})
defer cancel()
if err == nil {
failF("%v: expected range error", testname)
return
}
rangeString := "bytes=100-200"
ctx, cancel = context.WithTimeout(context.Background(), shortTimeout)

View File

@@ -106,7 +106,9 @@ const (
ErrNotImplemented
ErrPreconditionFailed
ErrInvalidObjectState
ErrInvalidRange
// Non-AWS errors
ErrExistingObjectIsDirectory
ErrObjectParentIsFile
)
@@ -374,6 +376,11 @@ var errorCodeResponse = map[ErrorCode]APIError{
Description: "The operation is not valid for the current state of the object",
HTTPStatusCode: http.StatusForbidden,
},
ErrInvalidRange: {
Code: "InvalidRange",
Description: "The requested range is not valid for the request. Try another range.",
HTTPStatusCode: http.StatusRequestedRangeNotSatisfiable,
},
ErrExistingObjectIsDirectory: {
Code: "ExistingObjectIsDirectory",
Description: "Existing Object is a directory.",