mirror of
https://github.com/minio/minio.git
synced 2025-07-16 12:21:55 -04:00
delete dangling objects automatically
This commit is contained in:
parent
96b1377863
commit
f864931ab4
@ -365,6 +365,24 @@ func (er erasureObjects) getObjectFileInfo(ctx context.Context, bucket, object s
|
|||||||
}
|
}
|
||||||
|
|
||||||
if reducedErr := reduceReadQuorumErrs(ctx, errs, objectOpIgnoredErrs, readQuorum); reducedErr != nil {
|
if reducedErr := reduceReadQuorumErrs(ctx, errs, objectOpIgnoredErrs, readQuorum); reducedErr != nil {
|
||||||
|
if reducedErr == errErasureReadQuorum && bucket != minioMetaBucket {
|
||||||
|
if _, ok := isObjectDangling(metaArr, errs, nil); ok {
|
||||||
|
reducedErr = errFileNotFound
|
||||||
|
if opts.VersionID != "" {
|
||||||
|
reducedErr = errFileVersionNotFound
|
||||||
|
}
|
||||||
|
// Remove the dangling object only when:
|
||||||
|
// - This is a non versioned bucket
|
||||||
|
// - This is a versioned bucket and the version ID is passed, the reason
|
||||||
|
// is that we cannot fetch the ID of the latest version when we don't trust xl.meta
|
||||||
|
if !opts.Versioned || opts.VersionID != "" {
|
||||||
|
er.deleteObjectVersion(ctx, bucket, object, 1, FileInfo{
|
||||||
|
Name: object,
|
||||||
|
VersionID: opts.VersionID,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return fi, nil, nil, toObjectErr(reducedErr, bucket, object)
|
return fi, nil, nil, toObjectErr(reducedErr, bucket, object)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user