aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/s3api/s3api_object_copy_handlers.go22
1 files changed, 6 insertions, 16 deletions
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)