Performing etag off of bytes rather than md5 string

This commit is contained in:
Frederick F. Kautz IV
2015-03-16 18:15:37 -07:00
parent 583c32c774
commit 211b084e50
3 changed files with 18 additions and 11 deletions
+5 -2
View File
@@ -25,6 +25,7 @@ import (
"time"
"encoding/base64"
"encoding/hex"
mstorage "github.com/minio-io/minio/pkg/storage"
)
@@ -63,7 +64,8 @@ func writeObjectHeaders(w http.ResponseWriter, metadata mstorage.ObjectMetadata)
lastModified := metadata.Created.Format(time.RFC1123)
// common headers
writeCommonHeaders(w, metadata.ContentType)
w.Header().Set("ETag", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
md5Bytes, _ := hex.DecodeString(metadata.Md5)
w.Header().Set("ETag", base64.StdEncoding.EncodeToString(md5Bytes))
w.Header().Set("Last-Modified", lastModified)
w.Header().Set("Content-Length", strconv.FormatInt(metadata.Size, 10))
w.Header().Set("Connection", "close")
@@ -74,7 +76,8 @@ func writeRangeObjectHeaders(w http.ResponseWriter, metadata mstorage.ObjectMeta
lastModified := metadata.Created.Format(time.RFC1123)
// common headers
writeCommonHeaders(w, metadata.ContentType)
w.Header().Set("ETag", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
md5Bytes, _ := hex.DecodeString(metadata.Md5)
w.Header().Set("ETag", base64.StdEncoding.EncodeToString(md5Bytes))
w.Header().Set("Last-Modified", lastModified)
w.Header().Set("Content-Range", ra)
w.Header().Set("Content-Length", strconv.FormatInt(metadata.Size, 10))