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