From f0c5b084288d55dadee73966247c598bc7ea6370 Mon Sep 17 00:00:00 2001 From: Darren Yu Date: Tue, 16 Sep 2025 10:31:09 +0800 Subject: [PATCH] feat(extract): preserve last modified when extract archive file (#2897) --- pkg/filemanager/workflows/extract.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/filemanager/workflows/extract.go b/pkg/filemanager/workflows/extract.go index 181bd034..f48d8547 100644 --- a/pkg/filemanager/workflows/extract.go +++ b/pkg/filemanager/workflows/extract.go @@ -292,7 +292,7 @@ func (m *ExtractArchiveTask) masterExtractArchive(ctx context.Context, dep depen extractor, ok := format.(archives.Extractor) if !ok { - return task.StatusError, fmt.Errorf("format not an extractor %s") + return task.StatusError, fmt.Errorf("format not an extractor %s", format.Extension()) } formatExt := format.Extension() @@ -409,6 +409,10 @@ func (m *ExtractArchiveTask) masterExtractArchive(ctx context.Context, dep depen Props: &fs.UploadProps{ Uri: savePath, Size: f.Size(), + LastModified: func() *time.Time { + t := f.FileInfo.ModTime().Local() + return &t + }(), }, ProgressFunc: func(current, diff int64, total int64) { atomic.AddInt64(&m.progress[ProgressTypeExtractSize].Current, diff) @@ -779,6 +783,10 @@ func (m *SlaveExtractArchiveTask) Do(ctx context.Context) (task.Status, error) { Props: &fs.UploadProps{ Uri: savePath, Size: f.Size(), + LastModified: func() *time.Time { + t := f.FileInfo.ModTime().Local() + return &t + }(), }, ProgressFunc: func(current, diff int64, total int64) { atomic.AddInt64(&m.progress[ProgressTypeExtractSize].Current, diff)