diff options
| author | limd <limd@sugon.com> | 2020-09-23 14:29:53 +0800 |
|---|---|---|
| committer | limd <limd@sugon.com> | 2020-09-23 14:29:53 +0800 |
| commit | d506080c36297f5b9320a292e5f9e0896bd3bccb (patch) | |
| tree | d2f3a25314cd5be71db3a117084ebeffe1255db9 | |
| parent | 8f9f29b7733471369e7d7b41d26a0da41a5fc1fd (diff) | |
| download | seaweedfs-d506080c36297f5b9320a292e5f9e0896bd3bccb.tar.xz seaweedfs-d506080c36297f5b9320a292e5f9e0896bd3bccb.zip | |
rollback
| -rw-r--r-- | weed/s3api/s3api_object_copy_handlers.go | 22 |
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) |
