From c46ffa814601c155472e568a6f86bd5c32b5d6ea Mon Sep 17 00:00:00 2001 From: Marina Biryukova Date: Thu, 7 Nov 2024 17:28:16 +0300 Subject: [PATCH] [#536] Add prefix to lifecycle rule Signed-off-by: Marina Biryukova --- api/data/lifecycle.go | 1 + api/handler/lifecycle.go | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/api/data/lifecycle.go b/api/data/lifecycle.go index 4d0828f59..cd7942348 100644 --- a/api/data/lifecycle.go +++ b/api/data/lifecycle.go @@ -20,6 +20,7 @@ type ( Filter *LifecycleRuleFilter `xml:"Filter,omitempty"` ID string `xml:"ID,omitempty"` NonCurrentVersionExpiration *NonCurrentVersionExpiration `xml:"NoncurrentVersionExpiration,omitempty"` + Prefix string `xml:"Prefix,omitempty"` } AbortIncompleteMultipartUpload struct { diff --git a/api/handler/lifecycle.go b/api/handler/lifecycle.go index 905c068d8..85a85f95b 100644 --- a/api/handler/lifecycle.go +++ b/api/handler/lifecycle.go @@ -218,6 +218,10 @@ func checkLifecycleConfiguration(ctx context.Context, cfg *data.LifecycleConfigu if err := checkLifecycleRuleFilter(rule.Filter); err != nil { return err } + + if rule.Filter != nil && rule.Filter.Prefix != "" && rule.Prefix != "" { + return fmt.Errorf("%w: rule cannot have two prefixes", apierr.GetAPIError(apierr.ErrMalformedXML)) + } } return nil