From 78069605a61515e95adf6b56ff07195ada7197bc Mon Sep 17 00:00:00 2001 From: chrislu Date: Mon, 16 Jun 2025 11:48:25 -0700 Subject: [PATCH] sort lifecycles --- weed/s3api/s3api_bucket_handlers.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index 2f535d0d0..52470e7df 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -8,6 +8,7 @@ import ( "fmt" "math" "net/http" + "sort" "strings" "time" @@ -329,7 +330,15 @@ func (s3a *S3ApiServer) GetBucketLifecycleConfigurationHandler(w http.ResponseWr } response := Lifecycle{} - for locationPrefix, internalTtl := range ttls { + // Sort locationPrefixes to ensure consistent ordering of lifecycle rules + var locationPrefixes []string + for locationPrefix := range ttls { + locationPrefixes = append(locationPrefixes, locationPrefix) + } + sort.Strings(locationPrefixes) + + for _, locationPrefix := range locationPrefixes { + internalTtl := ttls[locationPrefix] ttl, _ := needle.ReadTTL(internalTtl) days := int(ttl.Minutes() / 60 / 24) if days == 0 {