fix(ilm): preserve all-pool approval for tiered batch expiry

Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
Feng Ruohang
2026-11-03 20:40:04 +08:00
parent 393a84076f
commit 3a1e132f16
2 changed files with 213 additions and 0 deletions
+4
View File
@@ -760,6 +760,10 @@ func (z *erasureServerPools) deleteObjectsReconciled(ctx context.Context, bucket
}
deleteOpts := opts
deleteOpts.VersionID, deleteOpts.NoLock = obj.VersionID, true
// DeleteObjects already checked ordinary ILM UUID/explicit null
// versions against all pools. Empty IDs and user deletes have no such
// authorization; restored-copy expiry uses the single-object path.
deleteOpts.Expiration.CheckedAllPools = opts.Expiration.Expire && obj.VersionID != ""
deleteOpts.DeleteReplication = obj.ReplicationState()
if opts.PrefixEnabledFn != nil {
deleteOpts.Versioned = opts.PrefixEnabledFn(obj.ObjectName)