From 173f788ab715fb4d6b498e1c3c86f81fcdf27083 Mon Sep 17 00:00:00 2001 From: jingrow Date: Thu, 20 Nov 2025 10:33:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(jfile):=20=E7=A7=BB=E9=99=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=B8=85=E7=90=86=E7=9A=84=E5=89=8D=E7=BC=80=E9=99=90?= =?UTF-8?q?=E5=88=B6=EF=BC=8C=E6=B8=85=E7=90=86=E6=89=80=E6=9C=89=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 FileCleaner 的前缀过滤逻辑 - 清理 files 目录下所有超过保留时间的文件 - 修复 split_ 前缀文件未被清理的问题 --- apps/jfile/app.py | 3 +-- apps/jfile/file_cleaner.py | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/jfile/app.py b/apps/jfile/app.py index 486c4ae..fcf79e3 100644 --- a/apps/jfile/app.py +++ b/apps/jfile/app.py @@ -17,9 +17,8 @@ app.mount("/files", StaticFiles(directory="files"), name="files") # 注册文件定时清理任务 save_dir = "files" -file_prefix = "upscaled_" retention_hours = settings.file_retention_hours -cleaner = FileCleaner(save_dir, file_prefix, retention_hours) +cleaner = FileCleaner(save_dir, retention_hours) @app.on_event("startup") async def startup_event(): diff --git a/apps/jfile/file_cleaner.py b/apps/jfile/file_cleaner.py index 1a77089..f366b38 100644 --- a/apps/jfile/file_cleaner.py +++ b/apps/jfile/file_cleaner.py @@ -3,9 +3,8 @@ import asyncio from datetime import datetime, timedelta class FileCleaner: - def __init__(self, target_dir, prefix, retention_hours): + def __init__(self, target_dir, retention_hours): self.target_dir = target_dir - self.prefix = prefix self.retention_hours = retention_hours async def periodic_cleanup(self): @@ -21,9 +20,10 @@ class FileCleaner: return cutoff_time = datetime.now() - timedelta(hours=self.retention_hours) for filename in os.listdir(self.target_dir): - if not filename.startswith(self.prefix): - continue file_path = os.path.join(self.target_dir, filename) + # 跳过目录 + if os.path.isdir(file_path): + continue file_time = datetime.fromtimestamp(os.path.getctime(file_path)) if file_time < cutoff_time: try: