10
10
from apps .base .utils import get_expire_info , get_file_path_name , error_ip_limit , upload_ip_limit
11
11
from core .response import APIResponse
12
12
from core .settings import settings
13
- from core .storage import file_storage
13
+ from core .storage import storages , FileStorageInterface
14
14
from core .utils import get_select_token
15
15
16
16
# 创建一个API路由
@@ -56,6 +56,7 @@ async def share_file(expire_value: int = Form(default=1, gt=0), expire_style: st
56
56
# 获取文件路径和名称
57
57
path , suffix , prefix , uuid_file_name , save_path = await get_file_path_name (file )
58
58
# 保存文件
59
+ file_storage : FileStorageInterface = storages [settings .file_storage ]()
59
60
await file_storage .save_file (file , save_path )
60
61
# 创建一个新的FileCodes实例
61
62
await FileCodes .create (
@@ -94,6 +95,7 @@ async def get_code_file_by_code(code, check=True):
94
95
# 获取文件的API
95
96
@share_api .get ('/select/' )
96
97
async def get_code_file (code : str , ip : str = Depends (error_ip_limit )):
98
+ file_storage : FileStorageInterface = storages [settings .file_storage ]()
97
99
# 获取文件
98
100
has , file_code = await get_code_file_by_code (code )
99
101
# 检查文件是否存在
@@ -115,6 +117,7 @@ async def get_code_file(code: str, ip: str = Depends(error_ip_limit)):
115
117
# 选择文件的API
116
118
@share_api .post ('/select/' )
117
119
async def select_file (data : SelectFileModel , ip : str = Depends (error_ip_limit )):
120
+ file_storage : FileStorageInterface = storages [settings .file_storage ]()
118
121
# 获取文件
119
122
has , file_code = await get_code_file_by_code (data .code )
120
123
# 检查文件是否存在
@@ -141,6 +144,7 @@ async def select_file(data: SelectFileModel, ip: str = Depends(error_ip_limit)):
141
144
# 下载文件的API
142
145
@share_api .get ('/download' )
143
146
async def download_file (key : str , code : str , ip : str = Depends (error_ip_limit )):
147
+ file_storage : FileStorageInterface = storages [settings .file_storage ]()
144
148
# 检查token是否有效
145
149
is_valid = await get_select_token (code ) == key
146
150
if not is_valid :
0 commit comments