diff options
| -rw-r--r-- | weed/filer/filer.go | 7 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_write.go | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/weed/filer/filer.go b/weed/filer/filer.go index b61da85f6..e92c81bbe 100644 --- a/weed/filer/filer.go +++ b/weed/filer/filer.go @@ -354,6 +354,9 @@ func (f *Filer) FindEntry(ctx context.Context, p util.FullPath) (entry *Entry, e if entry.IsExpireS3Enabled() { if entry.GetS3ExpireTime().Before(time.Now()) { f.Store.DeleteOneEntry(ctx, entry) + if delErr := f.doDeleteEntryMetaAndData(ctx, entry, false, true, nil); delErr != nil { + glog.ErrorfCtx(ctx, "FindEntry doDeleteEntryMetaAndData %s failed: %v", entry.FullPath, delErr) + } return nil, filer_pb.ErrNotFound } } else if entry.Crtime.Add(time.Duration(entry.TtlSec) * time.Second).Before(time.Now()) { @@ -374,7 +377,9 @@ func (f *Filer) doListDirectoryEntries(ctx context.Context, p util.FullPath, sta if entry.TtlSec > 0 { if entry.IsExpireS3Enabled() { if entry.GetS3ExpireTime().Before(time.Now()) { - f.Store.DeleteOneEntry(ctx, entry) + if delErr := f.doDeleteEntryMetaAndData(ctx, entry, false, true, nil); delErr != nil { + glog.ErrorfCtx(ctx, "doListDirectoryEntries doDeleteEntryMetaAndData %s failed: %v", entry.FullPath, delErr) + } return true } } else if entry.Crtime.Add(time.Duration(entry.TtlSec) * time.Second).Before(time.Now()) { diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go index 31a4f4a41..1d897626c 100644 --- a/weed/server/filer_server_handlers_write.go +++ b/weed/server/filer_server_handlers_write.go @@ -98,8 +98,9 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request, conte } return } + // Disable TTL-based (creation time) deletion when S3 expiry (modification time) is enabled if so.TtlSeconds > 0 { - if S3expiresEnabled := r.Header.Get(s3_constants.SeaweedFSExpiresS3); S3expiresEnabled != "" { + if s3ExpiresValue := r.Header.Get(s3_constants.SeaweedFSExpiresS3); s3ExpiresValue == "true" { so.TtlSeconds = 0 } } |
