From 2bef4073736f9be735a911dbad5116e902a6f466 Mon Sep 17 00:00:00 2001 From: Lan Date: Tue, 24 Sep 2024 23:09:13 +0800 Subject: [PATCH] feat:#183 --- core/tasks.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/tasks.py b/core/tasks.py index 7a55fe3..d3e17ad 100644 --- a/core/tasks.py +++ b/core/tasks.py @@ -3,12 +3,13 @@ # @File : tasks.py # @Software: PyCharm import asyncio +import os from tortoise.expressions import Q from apps.base.models import FileCodes from apps.base.utils import ip_limit -from core.settings import settings +from core.settings import settings, data_root from core.storage import FileStorageInterface, storages from core.utils import get_now @@ -17,6 +18,11 @@ async def delete_expire_files(): file_storage: FileStorageInterface = storages[settings.file_storage]() while True: try: + # 遍历 share目录下的所有文件夹,删除空的文件夹,并判断父目录是否为空,如果为空也删除 + if settings.file_storage == 'local': + for root, dirs, files in os.walk(f"{data_root}/share/data"): + if not dirs and not files: + os.rmdir(root) await ip_limit['error'].remove_expired_ip() await ip_limit['upload'].remove_expired_ip() expire_data = await FileCodes.filter(Q(expired_at__lt=await get_now()) | Q(expired_count=0)).all()