aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlimd <limd@sugon.com>2020-09-23 14:29:53 +0800
committerlimd <limd@sugon.com>2020-09-23 14:29:53 +0800
commitd506080c36297f5b9320a292e5f9e0896bd3bccb (patch)
treed2f3a25314cd5be71db3a117084ebeffe1255db9
parent8f9f29b7733471369e7d7b41d26a0da41a5fc1fd (diff)
downloadseaweedfs-d506080c36297f5b9320a292e5f9e0896bd3bccb.tar.xz
seaweedfs-d506080c36297f5b9320a292e5f9e0896bd3bccb.zip
rollback
-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)