1
0
Fork 0
mirror of https://github.com/chrislusf/seaweedfs synced 2024-07-07 09:37:49 +02:00

add s3api error for copy in file, not directory

This commit is contained in:
Lapshinn Vitaly 2022-02-04 03:28:37 +03:00
parent 6cf2e7d493
commit 6bdc274d4d
2 changed files with 12 additions and 2 deletions

View file

@ -436,10 +436,14 @@ func setEtag(w http.ResponseWriter, etag string) {
} }
func filerErrorToS3Error(errString string) s3err.ErrorCode { 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 return s3err.ErrExistingObjectIsDirectory
case strings.HasSuffix(errString, "is a file"):
return s3err.ErrExistingObjectIsFile
default:
return s3err.ErrInternalError
} }
return s3err.ErrInternalError
} }
func (s3a *S3ApiServer) maybeAddFilerJwtAuthorization(r *http.Request, isWrite bool) { func (s3a *S3ApiServer) maybeAddFilerJwtAuthorization(r *http.Request, isWrite bool) {

View file

@ -101,6 +101,7 @@ const (
ErrPreconditionFailed ErrPreconditionFailed
ErrExistingObjectIsDirectory ErrExistingObjectIsDirectory
ErrExistingObjectIsFile
) )
// error code to APIError structure, these fields carry respective // error code to APIError structure, these fields carry respective
@ -383,6 +384,11 @@ var errorCodeResponse = map[ErrorCode]APIError{
Description: "Existing Object is a directory.", Description: "Existing Object is a directory.",
HTTPStatusCode: http.StatusConflict, HTTPStatusCode: http.StatusConflict,
}, },
ErrExistingObjectIsFile: {
Code: "ExistingObjectIsFile",
Description: "Existing Object is a file.",
HTTPStatusCode: http.StatusConflict,
},
} }
// GetAPIError provides API Error for input API error code. // GetAPIError provides API Error for input API error code.