aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/s3api/filer_multipart.go6
-rw-r--r--weed/s3api/s3api_object_multipart_handlers.go4
2 files changed, 10 insertions, 0 deletions
diff --git a/weed/s3api/filer_multipart.go b/weed/s3api/filer_multipart.go
index 9a485ec66..fca1a0aa4 100644
--- a/weed/s3api/filer_multipart.go
+++ b/weed/s3api/filer_multipart.go
@@ -38,6 +38,9 @@ func (s3a *S3ApiServer) createMultipartUpload(input *s3.CreateMultipartUploadInp
for k, v := range input.Metadata {
entry.Extended[k] = []byte(*v)
}
+ if input.ContentType != nil {
+ entry.Attributes.Mime = *input.ContentType
+ }
}); err != nil {
glog.Errorf("NewMultipartUpload error: %v", err)
return nil, s3err.ErrInternalError
@@ -121,6 +124,9 @@ func (s3a *S3ApiServer) completeMultipartUpload(input *s3.CompleteMultipartUploa
entry.Extended[k] = v
}
}
+ if pentry.Attributes.Mime != "" {
+ entry.Attributes.Mime = pentry.Attributes.Mime
+ }
})
if err != nil {
diff --git a/weed/s3api/s3api_object_multipart_handlers.go b/weed/s3api/s3api_object_multipart_handlers.go
index c9ad222b1..ab72b8437 100644
--- a/weed/s3api/s3api_object_multipart_handlers.go
+++ b/weed/s3api/s3api_object_multipart_handlers.go
@@ -36,6 +36,10 @@ func (s3a *S3ApiServer) NewMultipartUploadHandler(w http.ResponseWriter, r *http
createMultipartUploadInput.Metadata[k] = aws.String(string(v))
}
+ contentType := r.Header.Get("Content-Type")
+ if contentType != "" {
+ createMultipartUploadInput.ContentType = &contentType
+ }
response, errCode := s3a.createMultipartUpload(createMultipartUploadInput)
glog.V(2).Info("NewMultipartUploadHandler", string(s3err.EncodeXMLResponse(response)), errCode)