fix: objects matching prefixes should not leave delete markers (#15586)

This is needed to ensure that we do not leave prefixes where
version is suspended, instead we never leave versions on
these paths.
This commit is contained in:
Harshavardhana
2022-08-24 13:46:29 -07:00
committed by GitHub
parent b737c83a66
commit edba7c987b
2 changed files with 11 additions and 3 deletions

View File

@@ -169,7 +169,11 @@ func delOpts(ctx context.Context, r *http.Request, bucket, object string) (opts
return opts, err
}
opts.Versioned = globalBucketVersioningSys.PrefixEnabled(bucket, object)
opts.VersionSuspended = globalBucketVersioningSys.PrefixSuspended(bucket, object)
// Objects matching prefixes should not leave delete markers,
// dramatically reduces namespace pollution while keeping the
// benefits of replication, make sure to apply version suspension
// only at bucket level instead.
opts.VersionSuspended = globalBucketVersioningSys.Suspended(bucket)
delMarker := strings.TrimSpace(r.Header.Get(xhttp.MinIOSourceDeleteMarker))
if delMarker != "" {
switch delMarker {