update:自动删除过期文件
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user