aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_multipart_handlers.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2024-04-08 11:03:14 -0700
committerchrislu <chris.lu@gmail.com>2024-04-08 11:03:14 -0700
commitcc1c69f312a967dfb636a677db910eb64ab65a06 (patch)
tree086fa2b7ce6e7b80c4a00516cba2810655579709 /weed/s3api/s3api_object_multipart_handlers.go
parentccdd9cd8decf66089ac201b7c2ca1f5889582b93 (diff)
parentf08f95ac800b788e42290e58eb6444e094acf97f (diff)
downloadseaweedfs-cc1c69f312a967dfb636a677db910eb64ab65a06.tar.xz
seaweedfs-cc1c69f312a967dfb636a677db910eb64ab65a06.zip
Merge branch 'master' into mq-subscribe
Diffstat (limited to 'weed/s3api/s3api_object_multipart_handlers.go')
-rw-r--r--weed/s3api/s3api_object_multipart_handlers.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/weed/s3api/s3api_object_multipart_handlers.go b/weed/s3api/s3api_object_multipart_handlers.go
index 187022079..6fecdcf2d 100644
--- a/weed/s3api/s3api_object_multipart_handlers.go
+++ b/weed/s3api/s3api_object_multipart_handlers.go
@@ -10,6 +10,7 @@ import (
"strconv"
"strings"
+ "github.com/google/uuid"
"github.com/seaweedfs/seaweedfs/weed/glog"
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
@@ -247,8 +248,7 @@ func (s3a *S3ApiServer) PutObjectPartHandler(w http.ResponseWriter, r *http.Requ
glog.V(2).Infof("PutObjectPartHandler %s %s %04d", bucket, uploadID, partID)
- uploadUrl := fmt.Sprintf("http://%s%s/%s/%04d.part",
- s3a.option.Filer.ToHttpAddress(), s3a.genUploadsFolder(bucket), uploadID, partID)
+ uploadUrl := s3a.genPartUploadUrl(bucket, uploadID, partID)
if partID == 1 && r.Header.Get("Content-Type") == "" {
dataReader = mimeDetect(r, dataReader)
@@ -271,6 +271,11 @@ func (s3a *S3ApiServer) genUploadsFolder(bucket string) string {
return fmt.Sprintf("%s/%s/%s", s3a.option.BucketsPath, bucket, s3_constants.MultipartUploadsFolder)
}
+func (s3a *S3ApiServer) genPartUploadUrl(bucket, uploadID string, partID int) string {
+ return fmt.Sprintf("http://%s%s/%s/%04d_%s.part",
+ s3a.option.Filer.ToHttpAddress(), s3a.genUploadsFolder(bucket), uploadID, partID, uuid.NewString())
+}
+
// Generate uploadID hash string from object
func (s3a *S3ApiServer) generateUploadID(object string) string {
if strings.HasPrefix(object, "/") {