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 }