mirror of
https://github.com/minio/minio.git
synced 2025-11-06 20:33:07 -05:00
Fix multipart restore to remove part match (#12161)
Part ETags are not available after multipart finalizes, removing this check as not useful. Signed-off-by: Poorna Krishnamoorthy <poorna@minio.io> Co-authored-by: Harshavardhana <harsha@minio.io>
This commit is contained in:
committed by
GitHub
parent
26544848ea
commit
4be0f92067
@@ -1475,37 +1475,15 @@ func (er erasureObjects) restoreTransitionedObject(ctx context.Context, bucket s
|
||||
if err != nil {
|
||||
return setRestoreHeaderFn(oi, err)
|
||||
}
|
||||
if pInfo.Size != partInfo.Size {
|
||||
return setRestoreHeaderFn(oi, InvalidObjectState{Bucket: bucket, Object: object})
|
||||
}
|
||||
uploadedParts = append(uploadedParts, CompletePart{
|
||||
PartNumber: pInfo.PartNumber,
|
||||
ETag: pInfo.ETag,
|
||||
})
|
||||
}
|
||||
|
||||
partsMatch := true
|
||||
// validate parts created via multipart
|
||||
if len(oi.Parts) == len(uploadedParts) {
|
||||
for i, pi := range oi.Parts {
|
||||
if uploadedParts[i].ETag != pi.ETag {
|
||||
partsMatch = false
|
||||
break
|
||||
}
|
||||
}
|
||||
} else {
|
||||
partsMatch = false
|
||||
}
|
||||
|
||||
if !partsMatch {
|
||||
return setRestoreHeaderFn(oi, InvalidObjectState{Bucket: bucket, Object: object})
|
||||
}
|
||||
|
||||
_, err = er.CompleteMultipartUpload(ctx, bucket, object, uploadID, uploadedParts, ObjectOptions{
|
||||
MTime: oi.ModTime,
|
||||
Versioned: globalBucketVersioningSys.Enabled(bucket),
|
||||
VersionSuspended: globalBucketVersioningSys.Suspended(bucket),
|
||||
})
|
||||
if err != nil {
|
||||
uploadIDPath := er.getUploadIDDir(bucket, object, uploadID)
|
||||
return setRestoreHeaderFn(oi, toObjectErr(err, minioMetaMultipartBucket, uploadIDPath))
|
||||
}
|
||||
return setRestoreHeaderFn(oi, nil)
|
||||
MTime: oi.ModTime})
|
||||
return setRestoreHeaderFn(oi, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user