aboutsummaryrefslogtreecommitdiff
path: root/weed
diff options
context:
space:
mode:
Diffstat (limited to 'weed')
-rw-r--r--weed/s3api/filer_multipart.go3
-rw-r--r--weed/s3api/s3api_object_multipart_handlers.go17
-rw-r--r--weed/server/filer_server_handlers_write_autochunk.go4
3 files changed, 16 insertions, 8 deletions
diff --git a/weed/s3api/filer_multipart.go b/weed/s3api/filer_multipart.go
index f882592c1..61132c082 100644
--- a/weed/s3api/filer_multipart.go
+++ b/weed/s3api/filer_multipart.go
@@ -35,6 +35,9 @@ func (s3a *S3ApiServer) createMultipartUpload(input *s3.CreateMultipartUploadInp
entry.Extended = make(map[string][]byte)
}
entry.Extended["key"] = []byte(*input.Key)
+ for k, v := range input.Metadata {
+ entry.Extended[k] = []byte(*v)
+ }
}); err != nil {
glog.Errorf("NewMultipartUpload error: %v", err)
return nil, s3err.ErrInternalError
diff --git a/weed/s3api/s3api_object_multipart_handlers.go b/weed/s3api/s3api_object_multipart_handlers.go
index de3faaaaa..a4daea7a2 100644
--- a/weed/s3api/s3api_object_multipart_handlers.go
+++ b/weed/s3api/s3api_object_multipart_handlers.go
@@ -4,6 +4,7 @@ import (
"fmt"
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/s3api/s3err"
+ weed_server "github.com/chrislusf/seaweedfs/weed/server"
"net/http"
"net/url"
"strconv"
@@ -24,10 +25,18 @@ const (
func (s3a *S3ApiServer) NewMultipartUploadHandler(w http.ResponseWriter, r *http.Request) {
bucket, object := getBucketAndObject(r)
- response, errCode := s3a.createMultipartUpload(&s3.CreateMultipartUploadInput{
- Bucket: aws.String(bucket),
- Key: objectKey(aws.String(object)),
- })
+ createMultipartUploadInput := &s3.CreateMultipartUploadInput{
+ Bucket: aws.String(bucket),
+ Key: objectKey(aws.String(object)),
+ Metadata: make(map[string]*string),
+ }
+
+ metadata := weed_server.SaveAmzMetaData(r, nil, false)
+ for k, v := range metadata {
+ createMultipartUploadInput.Metadata[k] = aws.String(string(v))
+ }
+
+ response, errCode := s3a.createMultipartUpload(createMultipartUploadInput)
glog.V(2).Info("NewMultipartUploadHandler", s3err.EncodeXMLResponse(response), errCode)
diff --git a/weed/server/filer_server_handlers_write_autochunk.go b/weed/server/filer_server_handlers_write_autochunk.go
index fcb92d8ec..a42e0fc97 100644
--- a/weed/server/filer_server_handlers_write_autochunk.go
+++ b/weed/server/filer_server_handlers_write_autochunk.go
@@ -214,10 +214,6 @@ func (fs *FilerServer) saveMetaData(ctx context.Context, r *http.Request, fileNa
Size: int64(entry.FileSize),
}
- if entry.Extended == nil {
- entry.Extended = make(map[string][]byte)
- }
-
entry.Extended = SaveAmzMetaData(r, entry.Extended, false)
for k, v := range r.Header {