Browse Source

s3 TTL time

pull/7426/head
chrislu 2 months ago
parent
commit
9866287d8d
  1. 20
      weed/pb/filer_pb/filer_pb_helper.go

20
weed/pb/filer_pb/filer_pb_helper.go

@ -9,6 +9,7 @@ import (
"time"
"github.com/seaweedfs/seaweedfs/weed/glog"
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
"github.com/seaweedfs/seaweedfs/weed/storage/needle"
"github.com/viant/ptrie"
"google.golang.org/protobuf/proto"
@ -25,11 +26,22 @@ func (entry *Entry) IsDirectoryKeyObject() bool {
}
func (entry *Entry) GetExpiryTime() (expiryTime int64) {
expiryTime = entry.Attributes.Mtime
if expiryTime == 0 {
expiryTime = entry.Attributes.Crtime
// For S3 objects with lifecycle expiration, use Mtime (modification time)
// For regular TTL entries, use Crtime (creation time) for backward compatibility
if entry.Extended != nil {
if _, hasS3Expiry := entry.Extended[s3_constants.SeaweedFSExpiresS3]; hasS3Expiry {
// S3 lifecycle expiration: base TTL on modification time
expiryTime = entry.Attributes.Mtime
if expiryTime == 0 {
expiryTime = entry.Attributes.Crtime
}
expiryTime += int64(entry.Attributes.TtlSec)
return expiryTime
}
}
expiryTime += int64(entry.Attributes.TtlSec)
// Regular TTL expiration: base on creation time only
expiryTime = entry.Attributes.Crtime + int64(entry.Attributes.TtlSec)
return expiryTime
}

Loading…
Cancel
Save