api: Set content-encoding properly if set. (#2245)

Additionally don't set content-type if not present, golang http
server automaticaly handles this and sets it automatically.
This commit is contained in:
Harshavardhana
2016-07-20 12:40:20 -07:00
committed by GitHub
parent 18728a0b59
commit c1e953b368
5 changed files with 34 additions and 14 deletions
+24 -8
View File
@@ -325,8 +325,12 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re
// Save metadata.
metadata := make(map[string]string)
// Save other metadata if available.
metadata["content-type"] = objInfo.ContentType
metadata["content-encoding"] = objInfo.ContentEncoding
if objInfo.ContentType != "" {
metadata["content-type"] = objInfo.ContentType
}
if objInfo.ContentEncoding != "" {
metadata["content-encoding"] = objInfo.ContentEncoding
}
// Do not set `md5sum` as CopyObject will not keep the
// same md5sum as the source.
@@ -393,8 +397,14 @@ func (api objectAPIHandlers) PutObjectHandler(w http.ResponseWriter, r *http.Req
// Make sure we hex encode md5sum here.
metadata["md5Sum"] = hex.EncodeToString(md5Bytes)
// Save other metadata if available.
metadata["content-type"] = r.Header.Get("Content-Type")
metadata["content-encoding"] = r.Header.Get("Content-Encoding")
contentType := r.Header.Get("Content-Type")
if contentType != "" {
metadata["content-type"] = contentType
}
contentEncoding := r.Header.Get("Content-Encoding")
if contentEncoding != "" {
metadata["content-encoding"] = contentEncoding
}
for key := range r.Header {
cKey := http.CanonicalHeaderKey(key)
if strings.HasPrefix(cKey, "X-Amz-Meta-") {
@@ -465,13 +475,19 @@ func (api objectAPIHandlers) NewMultipartUploadHandler(w http.ResponseWriter, r
// Save metadata.
metadata := make(map[string]string)
// Save other metadata if available.
metadata["content-type"] = r.Header.Get("Content-Type")
metadata["content-encoding"] = r.Header.Get("Content-Encoding")
contentType := r.Header.Get("Content-Type")
if contentType != "" {
metadata["content-type"] = contentType
}
contentEncoding := r.Header.Get("Content-Encoding")
if contentEncoding != "" {
metadata["content-encoding"] = contentEncoding
}
for key := range r.Header {
cKey := http.CanonicalHeaderKey(key)
if strings.HasPrefix(cKey, "x-amz-meta-") {
if strings.HasPrefix(cKey, "X-Amz-Meta-") {
metadata[cKey] = r.Header.Get(cKey)
} else if strings.HasPrefix(key, "x-minio-meta-") {
} else if strings.HasPrefix(key, "X-Minio-Meta-") {
metadata[cKey] = r.Header.Get(cKey)
}
}