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
+3 -4
View File
@@ -18,7 +18,6 @@ package encoded
import (
"bytes"
"encoding/hex"
"errors"
"github.com/minio-io/minio/pkg/donutbox"
"github.com/minio-io/minio/pkg/encoding/erasure"
@@ -152,7 +151,7 @@ func (diskStorage StorageDriver) GetObjectMetadata(bucket, key string, prefix st
Key: key,
ContentType: metadata["contentType"],
Created: created,
ETag: hex.EncodeToString([]byte(metadata["md5"])),
Md5: metadata["md5"],
Size: size,
}
return objectMetadata, nil
@@ -210,7 +209,7 @@ func (diskStorage StorageDriver) CreateObject(bucketKey string, objectKey string
ContentType: contentType,
Created: time.Now(),
ETag: "md5",
Md5: "md5",
Size: int64(totalLength),
}
@@ -248,7 +247,7 @@ func createMetadata(metadataObject storage.ObjectMetadata, blockSize int, k, m u
metadata["key"] = metadataObject.Key
metadata["contentType"] = metadataObject.ContentType
metadata["created"] = metadataObject.Created.Format(time.RFC3339Nano)
metadata["md5"] = metadataObject.ETag
metadata["md5"] = metadataObject.Md5
metadata["size"] = strconv.FormatInt(metadataObject.Size, 10)
metadata["blockSize"] = strconv.FormatUint(uint64(blockSize), 10)
+1 -1
View File
@@ -174,7 +174,7 @@ func (storage *Storage) GetObjectMetadata(bucket, object, prefix string) (mstora
Key: trimmedObject,
Created: stat.ModTime(),
Size: stat.Size(),
ETag: etag,
Md5: etag,
ContentType: contentType,
}
+5 -3
View File
@@ -19,7 +19,6 @@ package memory
import (
"bufio"
"bytes"
"crypto/sha256"
"fmt"
"io"
"sort"
@@ -27,6 +26,8 @@ import (
"sync"
"time"
"crypto/md5"
"encoding/hex"
mstorage "github.com/minio-io/minio/pkg/storage"
)
@@ -114,14 +115,15 @@ func (storage *Storage) CreateObject(bucket, key, contentType string, data io.Re
var newObject = storedObject{}
if _, ok := io.Copy(&bytesBuffer, data); ok == nil {
size := bytesBuffer.Len()
etag := fmt.Sprintf("%x", sha256.Sum256(bytesBuffer.Bytes()))
md5SumBytes := md5.Sum(bytesBuffer.Bytes())
md5Sum := hex.EncodeToString(md5SumBytes[:])
newObject.metadata = mstorage.ObjectMetadata{
Bucket: bucket,
Key: key,
ContentType: contentType,
Created: time.Now(),
ETag: etag,
Md5: md5Sum,
Size: int64(size),
}
newObject.data = bytesBuffer.Bytes()
+1 -1
View File
@@ -52,7 +52,7 @@ type ObjectMetadata struct {
ContentType string
Created time.Time
ETag string
Md5 string
Size int64
}
+2 -2
View File
@@ -74,9 +74,9 @@ func testMultipleObjectCreation(c *check.C, create func() Storage) {
c.Assert(err, check.IsNil)
c.Assert(metadata.Size, check.Equals, int64(len(value)))
_, ok := etags[metadata.ETag]
_, ok := etags[metadata.Md5]
c.Assert(ok, check.Equals, false)
etags[metadata.ETag] = metadata.ETag
etags[metadata.Md5] = metadata.Md5
}
}