update:自动删除过期文件

This commit is contained in:
lan
2023-08-15 22:37:54 +08:00
parent 824d6e7cf2
commit d91d64cad5
7 changed files with 54 additions and 5 deletions
+14
View File
@@ -69,6 +69,20 @@ class S3FileStorage:
return result
class FileStorageTemplate:
def __init__(self):
...
async def save_file(self, file: UploadFile, save_path: str):
...
async def delete_file(self, file_code: FileCodes):
...
async def get_file_url(self, file_code: FileCodes):
...
storages = {
'local': SystemFileStorage,
's3': S3FileStorage
+27
View File
@@ -0,0 +1,27 @@
# @Time : 2023/8/15 22:00
# @Author : Lan
# @File : tasks.py
# @Software: PyCharm
import asyncio
from tortoise.expressions import Q
from apps.base.models import FileCodes
from apps.base.utils import error_ip_limit, upload_ip_limit
from core.storage import file_storage
from core.utils import get_now
async def delete_expire_files():
while True:
try:
await error_ip_limit.remove_expired_ip()
await upload_ip_limit.remove_expired_ip()
expire_data = await FileCodes.filter(Q(expired_at__lt=await get_now()) | Q(expired_count=0)).all()
for exp in expire_data:
await file_storage.delete_file(exp)
await exp.delete()
except Exception as e:
print(e)
finally:
await asyncio.sleep(600)