Metadata now stores hex md5, not base64. Minio API now converts md5 hex to base64.

This commit is contained in:
Frederick F. Kautz IV
2015-03-16 18:03:03 -07:00
parent ed5051a795
commit 583c32c774
8 changed files with 24 additions and 20 deletions

View File

@@ -32,6 +32,7 @@ import (
mstorage "github.com/minio-io/minio/pkg/storage"
"github.com/minio-io/minio/pkg/storage/memory"
"encoding/base64"
. "gopkg.in/check.v1"
)
@@ -73,7 +74,7 @@ func (s *MySuite) TestEmptyObject(c *C) {
metadata, err := storage.GetObjectMetadata("bucket", "object", "")
c.Assert(err, IsNil)
verifyHeaders(c, response.Header, metadata.Created, 0, "application/octet-stream", metadata.ETag)
verifyHeaders(c, response.Header, metadata.Created, 0, "application/octet-stream", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
// TODO Test Headers
}
@@ -98,7 +99,7 @@ func (s *MySuite) TestObject(c *C) {
metadata, err := storage.GetObjectMetadata("bucket", "object", "")
c.Assert(err, IsNil)
verifyHeaders(c, response.Header, metadata.Created, len("hello world"), "application/octet-stream", metadata.ETag)
verifyHeaders(c, response.Header, metadata.Created, len("hello world"), "application/octet-stream", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
}
func (s *MySuite) TestMultipleObjects(c *C) {
@@ -134,7 +135,7 @@ func (s *MySuite) TestMultipleObjects(c *C) {
c.Assert(response.StatusCode, Equals, http.StatusOK)
// verify headers
verifyHeaders(c, response.Header, metadata.Created, len("hello one"), "application/octet-stream", metadata.ETag)
verifyHeaders(c, response.Header, metadata.Created, len("hello one"), "application/octet-stream", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
c.Assert(err, IsNil)
// verify response data
@@ -153,7 +154,7 @@ func (s *MySuite) TestMultipleObjects(c *C) {
c.Assert(response.StatusCode, Equals, http.StatusOK)
// verify headers
verifyHeaders(c, response.Header, metadata.Created, len("hello two"), "application/octet-stream", metadata.ETag)
verifyHeaders(c, response.Header, metadata.Created, len("hello two"), "application/octet-stream", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
c.Assert(err, IsNil)
// verify response data
@@ -172,7 +173,7 @@ func (s *MySuite) TestMultipleObjects(c *C) {
c.Assert(response.StatusCode, Equals, http.StatusOK)
// verify headers
verifyHeaders(c, response.Header, metadata.Created, len("hello three"), "application/octet-stream", metadata.ETag)
verifyHeaders(c, response.Header, metadata.Created, len("hello three"), "application/octet-stream", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
c.Assert(err, IsNil)
// verify object
@@ -212,7 +213,7 @@ func (s *MySuite) TestHeader(c *C) {
metadata, err := storage.GetObjectMetadata("bucket", "object", "")
c.Assert(err, IsNil)
verifyHeaders(c, response.Header, metadata.Created, len("hello world"), "application/octet-stream", metadata.ETag)
verifyHeaders(c, response.Header, metadata.Created, len("hello world"), "application/octet-stream", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
}
func (s *MySuite) TestPutBucket(c *C) {

View File

@@ -24,6 +24,7 @@ import (
"strconv"
"time"
"encoding/base64"
mstorage "github.com/minio-io/minio/pkg/storage"
)
@@ -62,7 +63,7 @@ func writeObjectHeaders(w http.ResponseWriter, metadata mstorage.ObjectMetadata)
lastModified := metadata.Created.Format(time.RFC1123)
// common headers
writeCommonHeaders(w, metadata.ContentType)
w.Header().Set("ETag", metadata.ETag)
w.Header().Set("ETag", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
w.Header().Set("Last-Modified", lastModified)
w.Header().Set("Content-Length", strconv.FormatInt(metadata.Size, 10))
w.Header().Set("Connection", "close")
@@ -73,7 +74,7 @@ func writeRangeObjectHeaders(w http.ResponseWriter, metadata mstorage.ObjectMeta
lastModified := metadata.Created.Format(time.RFC1123)
// common headers
writeCommonHeaders(w, metadata.ContentType)
w.Header().Set("ETag", metadata.ETag)
w.Header().Set("ETag", base64.StdEncoding.EncodeToString([]byte(metadata.Md5)))
w.Header().Set("Last-Modified", lastModified)
w.Header().Set("Content-Range", ra)
w.Header().Set("Content-Length", strconv.FormatInt(metadata.Size, 10))

View File

@@ -19,6 +19,7 @@ package minioapi
import (
"sort"
"encoding/hex"
mstorage "github.com/minio-io/minio/pkg/storage"
)
@@ -89,7 +90,7 @@ func generateObjectsListResult(bucket string, objects []mstorage.ObjectMetadata,
}
content.Key = object.Key
content.LastModified = object.Created.Format(iso8601Format)
content.ETag = object.ETag
content.ETag = hex.EncodeToString([]byte(object.Md5))
content.Size = object.Size
content.StorageClass = "STANDARD"
content.Owner = owner