diff options
| author | chrislu <chris.lu@gmail.com> | 2025-11-05 13:49:48 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-11-05 13:49:48 -0800 |
| commit | 835e5696d9f07d12647999064d459fbd0942a157 (patch) | |
| tree | 89570f5bff9e7c629e2c57fac9931e7f013d928b | |
| parent | 92525d78cea51d2a4d45a223a346838d5638d148 (diff) | |
| download | seaweedfs-835e5696d9f07d12647999064d459fbd0942a157.tar.xz seaweedfs-835e5696d9f07d12647999064d459fbd0942a157.zip | |
still issue UpdateEntry when the flag must be added
| -rw-r--r-- | weed/s3api/filer_util.go | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/weed/s3api/filer_util.go b/weed/s3api/filer_util.go index 6bf745dbf..28091f8ba 100644 --- a/weed/s3api/filer_util.go +++ b/weed/s3api/filer_util.go @@ -6,10 +6,9 @@ import ( "math" "strings" - "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" - "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb" + "github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants" "github.com/seaweedfs/seaweedfs/weed/util" ) @@ -135,11 +134,20 @@ func (s3a *S3ApiServer) updateEntriesTTL(parentDirectoryPath string, ttlSec int3 if entry.Extended == nil { entry.Extended = make(map[string][]byte) } - entry.Extended[s3_constants.SeaweedFSExpiresS3] = []byte("true") - if entry.Attributes.TtlSec == ttlSec { + + // Check if both TTL and S3 expiry flag are already set correctly + flagAlreadySet := string(entry.Extended[s3_constants.SeaweedFSExpiresS3]) == "true" + if entry.Attributes.TtlSec == ttlSec && flagAlreadySet { return nil } - entry.Attributes.TtlSec = ttlSec + + // Set the S3 expiry flag + entry.Extended[s3_constants.SeaweedFSExpiresS3] = []byte("true") + // Update TTL if needed + if entry.Attributes.TtlSec != ttlSec { + entry.Attributes.TtlSec = ttlSec + } + if err := filer_pb.UpdateEntry(ctx, client, &filer_pb.UpdateEntryRequest{ Directory: dir, Entry: entry, |
