aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_copy_handlers.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-10-29 17:54:30 -0700
committerchrislu <chris.lu@gmail.com>2022-10-29 17:54:30 -0700
commit8b9957d4616f9c6d416552a1db9fbd83c97c64f4 (patch)
treebc69723a00309dcd7b8e2bb229105ddd503b927e /weed/s3api/s3api_object_copy_handlers.go
parent0d9f2f9e7a3a4cda273ef1d057c7f2b052b985d9 (diff)
downloadseaweedfs-8b9957d4616f9c6d416552a1db9fbd83c97c64f4.tar.xz
seaweedfs-8b9957d4616f9c6d416552a1db9fbd83c97c64f4.zip
add back "/" prefix if it is missing in object
fix https://github.com/seaweedfs/seaweedfs/issues/3737
Diffstat (limited to 'weed/s3api/s3api_object_copy_handlers.go')
-rw-r--r--weed/s3api/s3api_object_copy_handlers.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/weed/s3api/s3api_object_copy_handlers.go b/weed/s3api/s3api_object_copy_handlers.go
index 0e6c5ab89..83120ef07 100644
--- a/weed/s3api/s3api_object_copy_handlers.go
+++ b/weed/s3api/s3api_object_copy_handlers.go
@@ -81,9 +81,9 @@ func (s3a *S3ApiServer) CopyObjectHandler(w http.ResponseWriter, r *http.Request
}
dstUrl := fmt.Sprintf("http://%s%s/%s%s",
- s3a.option.Filer.ToHttpAddress(), s3a.option.BucketsPath, dstBucket, urlPathEscape(dstObject))
+ s3a.option.Filer.ToHttpAddress(), s3a.option.BucketsPath, dstBucket, urlEscapeObject(dstObject))
srcUrl := fmt.Sprintf("http://%s%s/%s%s",
- s3a.option.Filer.ToHttpAddress(), s3a.option.BucketsPath, srcBucket, urlPathEscape(srcObject))
+ s3a.option.Filer.ToHttpAddress(), s3a.option.BucketsPath, srcBucket, urlEscapeObject(srcObject))
_, _, resp, err := util.DownloadFile(srcUrl, s3a.maybeGetFilerJwtAuthorizationToken(false))
if err != nil {
@@ -172,7 +172,7 @@ func (s3a *S3ApiServer) CopyObjectPartHandler(w http.ResponseWriter, r *http.Req
dstUrl := fmt.Sprintf("http://%s%s/%s/%04d.part",
s3a.option.Filer.ToHttpAddress(), s3a.genUploadsFolder(dstBucket), uploadID, partID)
srcUrl := fmt.Sprintf("http://%s%s/%s%s",
- s3a.option.Filer.ToHttpAddress(), s3a.option.BucketsPath, srcBucket, urlPathEscape(srcObject))
+ s3a.option.Filer.ToHttpAddress(), s3a.option.BucketsPath, srcBucket, urlEscapeObject(srcObject))
resp, dataReader, err := util.ReadUrlAsReaderCloser(srcUrl, s3a.maybeGetFilerJwtAuthorizationToken(false), rangeHeader)
if err != nil {