diff --git a/weed/s3api/s3api_object_copy_handlers.go b/weed/s3api/s3api_object_copy_handlers.go index 7c6d36f20..99a852c0c 100644 --- a/weed/s3api/s3api_object_copy_handlers.go +++ b/weed/s3api/s3api_object_copy_handlers.go @@ -1,7 +1,6 @@ package s3api import ( - "crypto/md5" "fmt" "github.com/chrislusf/seaweedfs/weed/s3api/s3err" "net/http" @@ -83,7 +82,7 @@ type CopyPartResult struct { func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Request) { // https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html // https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html - dstBucket, dstObject := getBucketAndObject(r) + dstBucket, _ := getBucketAndObject(r) // Copy source path. cpSrcPath, err := url.QueryUnescape(r.Header.Get("X-Amz-Copy-Source")) @@ -128,20 +127,11 @@ func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Req } defer dataReader.Close() - var etag string - if strings.HasSuffix(srcObject, "/") { - if err := s3a.mkdir(s3a.option.BucketsPath, dstBucket+dstObject, nil); err != nil { - writeErrorResponse(w, s3err.ErrInternalError, r.URL) - return - } - etag = fmt.Sprintf("%x", md5.New().Sum(nil)) - } else { - _etag, errCode := s3a.putToFiler(r, dstUrl, dataReader) - etag = _etag - if errCode != s3err.ErrNone { - writeErrorResponse(w, errCode, r.URL) - return - } + etag, errCode := s3a.putToFiler(r, dstUrl, dataReader) + + if errCode != s3err.ErrNone { + writeErrorResponse(w, errCode, r.URL) + return } setEtag(w, etag)