fix: use meta.Erasure.Index for GetObject() to reconstruct object (#10764)

This commit is contained in:
Krishna Srinivas
2020-10-26 16:19:42 -07:00
committed by GitHub
parent 46275c6547
commit c49a80db41
4 changed files with 32 additions and 3 deletions
+3 -2
View File
@@ -215,11 +215,12 @@ func (er erasureObjects) GetObject(ctx context.Context, bucket, object string, s
}
func (er erasureObjects) getObjectWithFileInfo(ctx context.Context, bucket, object string, startOffset int64, length int64, writer io.Writer, etag string, opts ObjectOptions, fi FileInfo, metaArr []FileInfo, onlineDisks []StorageAPI) error {
tmpDisks := onlineDisks
// Reorder online disks based on erasure distribution order.
onlineDisks = shuffleDisks(onlineDisks, fi.Erasure.Distribution)
onlineDisks = shuffleDisksByIndex(tmpDisks, metaArr)
// Reorder parts metadata based on erasure distribution order.
metaArr = shufflePartsMetadata(metaArr, fi.Erasure.Distribution)
metaArr = shufflePartsMetadataByIndex(tmpDisks, metaArr)
// For negative length read everything.
if length < 0 {