aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-11-13 23:01:58 -0800
committerchrislu <chris.lu@gmail.com>2022-11-13 23:01:58 -0800
commit7ac40ae3d4403290d3cade685811ee8c05c75ef2 (patch)
treeee69bc2c067109a8413c7c2f4673ed1807107f81
parentaae82dca6f18eab4ffb602c2ca195ddcde061c30 (diff)
parent39f0246deb8edd4ac44f6fe7eb4afe55c2d2d923 (diff)
downloadseaweedfs-7ac40ae3d4403290d3cade685811ee8c05c75ef2.tar.xz
seaweedfs-7ac40ae3d4403290d3cade685811ee8c05c75ef2.zip
Merge branch 'master' of https://github.com/seaweedfs/seaweedfs
-rw-r--r--weed/remote_storage/azure/azure_storage_client.go6
-rw-r--r--weed/s3api/filer_multipart.go3
-rw-r--r--weed/s3api/s3api_object_multipart_handlers.go3
3 files changed, 10 insertions, 2 deletions
diff --git a/weed/remote_storage/azure/azure_storage_client.go b/weed/remote_storage/azure/azure_storage_client.go
index af67c8565..8183c77a4 100644
--- a/weed/remote_storage/azure/azure_storage_client.go
+++ b/weed/remote_storage/azure/azure_storage_client.go
@@ -187,7 +187,11 @@ func toMetadata(attributes map[string][]byte) map[string]string {
metadata[k[len(s3_constants.AmzUserMetaPrefix):]] = string(v)
}
}
- return metadata
+ parsed_metadata := make(map[string]string)
+ for k, v := range metadata {
+ parsed_metadata[strings.Replace(k, "-", "_", -1)] = v
+ }
+ return parsed_metadata
}
func (az *azureRemoteStorageClient) UpdateFileMetadata(loc *remote_pb.RemoteStorageLocation, oldEntry *filer_pb.Entry, newEntry *filer_pb.Entry) (err error) {
diff --git a/weed/s3api/filer_multipart.go b/weed/s3api/filer_multipart.go
index 71b93a202..0167b5906 100644
--- a/weed/s3api/filer_multipart.go
+++ b/weed/s3api/filer_multipart.go
@@ -4,6 +4,7 @@ import (
"encoding/hex"
"encoding/xml"
"fmt"
+ "github.com/google/uuid"
"github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
"golang.org/x/exp/slices"
"math"
@@ -32,6 +33,8 @@ func (s3a *S3ApiServer) createMultipartUpload(input *s3.CreateMultipartUploadInp
uploadIdString := s3a.generateUploadID(*input.Key)
+ uploadIdString = uploadIdString + "_" +strings.ReplaceAll(uuid.New().String(),"-","")
+
if err := s3a.mkdir(s3a.genUploadsFolder(*input.Bucket), uploadIdString, func(entry *filer_pb.Entry) {
if entry.Extended == nil {
entry.Extended = make(map[string][]byte)
diff --git a/weed/s3api/s3api_object_multipart_handlers.go b/weed/s3api/s3api_object_multipart_handlers.go
index 96000310c..b08a1e797 100644
--- a/weed/s3api/s3api_object_multipart_handlers.go
+++ b/weed/s3api/s3api_object_multipart_handlers.go
@@ -285,7 +285,8 @@ func (s3a *S3ApiServer) generateUploadID(object string) string {
func (s3a *S3ApiServer) checkUploadId(object string, id string) error {
hash := s3a.generateUploadID(object)
- if hash != id {
+
+ if !strings.HasPrefix(id, hash) {
glog.Errorf("object %s and uploadID %s are not matched", object, id)
return fmt.Errorf("object %s and uploadID %s are not matched", object, id)
}