aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/s3api/s3api_bucket_handlers.go11
1 files changed, 10 insertions, 1 deletions
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 {