From e05aa762a9a15bc6322ac33499c1e9bafa6ae5f3 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Sun, 1 May 2016 14:50:30 -0700 Subject: [PATCH] fs: Create object part with md5sum later using RenameFile. (#1440) Fixes #1340. --- fs-objects-multipart.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/fs-objects-multipart.go b/fs-objects-multipart.go index 09747bd6b..439c457a6 100644 --- a/fs-objects-multipart.go +++ b/fs-objects-multipart.go @@ -324,8 +324,9 @@ func (fs fsObjects) PutObjectPart(bucket, object, uploadID string, partID int, s return "", InvalidUploadID{UploadID: uploadID} } - partSuffix := fmt.Sprintf("%s.%d.%s", uploadID, partID, md5Hex) - fileWriter, err := fs.storage.CreateFile(minioMetaVolume, path.Join(bucket, object, partSuffix)) + partSuffix := fmt.Sprintf("%s.%d", uploadID, partID) + partSuffixPath := path.Join(bucket, object, partSuffix) + fileWriter, err := fs.storage.CreateFile(minioMetaVolume, partSuffixPath) if err != nil { return "", toObjectErr(err, bucket, object) } @@ -367,6 +368,12 @@ func (fs fsObjects) PutObjectPart(bucket, object, uploadID string, partID int, s if err != nil { return "", err } + partSuffixMD5 := fmt.Sprintf("%s.%d.%s", uploadID, partID, newMD5Hex) + partSuffixMD5Path := path.Join(bucket, object, partSuffixMD5) + err = fs.storage.RenameFile(minioMetaVolume, partSuffixPath, minioMetaVolume, partSuffixMD5Path) + if err != nil { + return "", err + } return newMD5Hex, nil }