Browse Source

add s3api error for copy in file, not directory

pull/2632/head
Lapshinn Vitaly 3 years ago
parent
commit
6bdc274d4d
  1. 8
      weed/s3api/s3api_object_handlers.go
  2. 6
      weed/s3api/s3err/s3api_errors.go

8
weed/s3api/s3api_object_handlers.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
}
return s3err.ErrInternalError
}
func (s3a *S3ApiServer) maybeAddFilerJwtAuthorization(r *http.Request, isWrite bool) {

6
weed/s3api/s3err/s3api_errors.go

@ -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.

Loading…
Cancel
Save