mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-05-23 18:21:28 +00:00
move s3 delete expired entry to filer
This commit is contained in:
@@ -372,7 +372,12 @@ func (f *Filer) doListDirectoryEntries(ctx context.Context, p util.FullPath, sta
|
||||
return false
|
||||
default:
|
||||
if entry.TtlSec > 0 {
|
||||
if entry.Crtime.Add(time.Duration(entry.TtlSec) * time.Second).Before(time.Now()) {
|
||||
if entry.IsExpireS3Enabled() {
|
||||
if entry.GetS3ExpireTime().Before(time.Now()) {
|
||||
f.Store.DeleteOneEntry(ctx, entry)
|
||||
return true
|
||||
}
|
||||
} else if entry.Crtime.Add(time.Duration(entry.TtlSec) * time.Second).Before(time.Now()) {
|
||||
f.Store.DeleteOneEntry(ctx, entry)
|
||||
expiredCount++
|
||||
return true
|
||||
|
||||
@@ -468,6 +468,9 @@ func (s3a *S3ApiServer) completeMultipartUpload(r *http.Request, input *s3.Compl
|
||||
entry.Attributes.Mime = mime
|
||||
}
|
||||
entry.Attributes.FileSize = uint64(offset)
|
||||
if s3a.option.AllowDeleteObjectsByTTL && entry.Attributes.TtlSec > 0 {
|
||||
entry.Extended[s3_constants.SeaweedFSExpiresS3] = []byte("true")
|
||||
}
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
|
||||
@@ -348,11 +348,6 @@ func (s3a *S3ApiServer) GetObjectHandler(w http.ResponseWriter, r *http.Request)
|
||||
// Add object lock metadata to response headers if present
|
||||
s3a.addObjectLockHeadersToResponse(w, entry)
|
||||
} else {
|
||||
if s3a.option.AllowDeleteObjectsByTTL && entry.IsExpired() {
|
||||
s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey)
|
||||
s3a.removeExpiredObject(w, r, entry, bucket, object)
|
||||
return
|
||||
}
|
||||
// Handle regular GET (non-versioned)
|
||||
destUrl = s3a.toFilerUrl(bucket, object)
|
||||
}
|
||||
|
||||
@@ -303,12 +303,6 @@ func (s3a *S3ApiServer) listFilerEntries(bucket string, originalPrefix string, m
|
||||
}
|
||||
}
|
||||
}
|
||||
if s3a.option.AllowDeleteObjectsByTTL && entry.IsExpired() {
|
||||
if delErr := doDeleteEntry(client, dirName, entryName, true, false); delErr != nil {
|
||||
glog.Errorf("delete expired entries %s/%s: %v", dirName, entryName, delErr)
|
||||
}
|
||||
return
|
||||
}
|
||||
if !delimiterFound {
|
||||
contents = append(contents, newListEntry(entry, "", dirName, entryName, bucketPrefix, fetchOwner, false, false, s3a.iam))
|
||||
cursor.maxKeys--
|
||||
|
||||
Reference in New Issue
Block a user