Browse Source
Merge pull request #2632 from lapshin-vitaly/s3api_errors
add s3api error for copy in file, not directory
pull/2643/head
Chris Lu
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
12 additions and
2 deletions
-
weed/s3api/s3api_object_handlers.go
-
weed/s3api/s3err/s3api_errors.go
|
|
@ -436,10 +436,14 @@ func setEtag(w http.ResponseWriter, etag string) { |
|
|
|
} |
|
|
|
|
|
|
|
func filerErrorToS3Error(errString string) s3err.ErrorCode { |
|
|
|
if strings.HasPrefix(errString, "existing ") && strings.HasSuffix(errString, "is a directory") { |
|
|
|
switch { |
|
|
|
case strings.HasPrefix(errString, "existing ") && strings.HasSuffix(errString, "is a directory"): |
|
|
|
return s3err.ErrExistingObjectIsDirectory |
|
|
|
} |
|
|
|
case strings.HasSuffix(errString, "is a file"): |
|
|
|
return s3err.ErrExistingObjectIsFile |
|
|
|
default: |
|
|
|
return s3err.ErrInternalError |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func (s3a *S3ApiServer) maybeAddFilerJwtAuthorization(r *http.Request, isWrite bool) { |
|
|
|
|
|
@ -101,6 +101,7 @@ const ( |
|
|
|
ErrPreconditionFailed |
|
|
|
|
|
|
|
ErrExistingObjectIsDirectory |
|
|
|
ErrExistingObjectIsFile |
|
|
|
) |
|
|
|
|
|
|
|
// error code to APIError structure, these fields carry respective
|
|
|
@ -383,6 +384,11 @@ var errorCodeResponse = map[ErrorCode]APIError{ |
|
|
|
Description: "Existing Object is a directory.", |
|
|
|
HTTPStatusCode: http.StatusConflict, |
|
|
|
}, |
|
|
|
ErrExistingObjectIsFile: { |
|
|
|
Code: "ExistingObjectIsFile", |
|
|
|
Description: "Existing Object is a file.", |
|
|
|
HTTPStatusCode: http.StatusConflict, |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
// GetAPIError provides API Error for input API error code.
|
|
|
|