You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
import requests, os
|
|
|
|
from utils.tool import upload_file
|
|
import traceback
|
|
|
|
|
|
def decode(content, decodekey):
|
|
"""
|
|
调用三方服务解密
|
|
:param content:
|
|
:param decodekey:
|
|
:return:
|
|
"""
|
|
url = "http://127.0.0.1:3000/wx/decode1"
|
|
files = {'file': content}
|
|
param = {
|
|
"decodekey": decodekey
|
|
}
|
|
response = requests.post(url, files=files, params=param)
|
|
return response.content
|
|
|
|
|
|
def save_video(content, filename):
|
|
"""
|
|
保存文件到 tmp下 返回绝对路径
|
|
:param content:
|
|
:param filename:
|
|
:return:
|
|
"""
|
|
tmp_file = f"{os.getcwd()}/wx/tmp/{filename}"
|
|
with open(tmp_file, 'wb') as f:
|
|
f.write(content)
|
|
f.close()
|
|
return filename
|
|
|
|
|
|
async def main(content, decodekey):
|
|
"""
|
|
处理上传文件流
|
|
- 成功则成功;
|
|
- 失败则保存在本地
|
|
:param content:
|
|
:param decodekey:
|
|
:return:
|
|
"""
|
|
file_name = f"{decodekey}.mp4"
|
|
res = {"code": 200, "msg": "上传成功", "filePath": ""}
|
|
try:
|
|
content = decode(content, decodekey)
|
|
upload_file_name = await upload_file(file_name, content)
|
|
except Exception as e: # 失败则保存本地
|
|
traceback.print_exc()
|
|
upload_file_name = save_video(content, file_name)
|
|
res["code"] = 203
|
|
res["msg"] = "上传失败,保存到本地"
|
|
|
|
res["filePath"] = upload_file_name
|
|
|
|
return res
|