From 9c4ec38182ceec70ae1b4b141fc19b3c2dfd0436 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Thu, 21 Aug 2025 15:06:32 +0800 Subject: [PATCH] 'commit' --- dsLightRag/Routes/SunoRoute.py | 82 +++++++++--------- .../__pycache__/SunoRoute.cpython-310.pyc | Bin 6168 -> 6194 bytes dsLightRag/static/Suno/music_progress.html | 54 ++++++++---- 3 files changed, 81 insertions(+), 55 deletions(-) diff --git a/dsLightRag/Routes/SunoRoute.py b/dsLightRag/Routes/SunoRoute.py index 64dde133..3437c267 100644 --- a/dsLightRag/Routes/SunoRoute.py +++ b/dsLightRag/Routes/SunoRoute.py @@ -203,51 +203,53 @@ async def check_task_status(task_id: str = Query(..., description="音乐生成 task_info["audio_url"] = audio_url logger.info("音乐生成已完成!") logger.info(f"音频URL: {audio_url}") - - # 新增:下载音频文件并上传到OBS - try: - # 使用UUID生成唯一文件名 - unique_id = uuid.uuid4() - object_key = f"HuangHai/JiMeng/{unique_id}.mp3" + + # 新增:检查是否已经上传到OBS + if "obs_url" not in task_info or not task_info["obs_url"]: + # 新增:下载音频文件并上传到OBS + try: + # 使用UUID生成唯一文件名 + unique_id = uuid.uuid4() + object_key = f"HuangHai/JiMeng/{unique_id}.mp3" - # 临时文件保存路径 - temp_file_path = os.path.join(os.path.dirname(__file__), f"{unique_id}.mp3") + # 临时文件保存路径 + temp_file_path = os.path.join(os.path.dirname(__file__), f"{unique_id}.mp3") - # 下载URL内容到临时文件 - logger.info(f"开始下载URL内容: {audio_url}") - with requests.get(audio_url, stream=True, timeout=3600) as r: - r.raise_for_status() - with open(temp_file_path, 'wb') as f: - for chunk in r.iter_content(chunk_size=8192): - f.write(chunk) - logger.info(f"URL内容下载完成,保存至: {temp_file_path}") + # 下载URL内容到临时文件 + logger.info(f"开始下载URL内容: {audio_url}") + with requests.get(audio_url, stream=True, timeout=3600) as r: + r.raise_for_status() + with open(temp_file_path, 'wb') as f: + for chunk in r.iter_content(chunk_size=8192): + f.write(chunk) + logger.info(f"URL内容下载完成,保存至: {temp_file_path}") - # 上传文件到OBS - from Util.ObsUtil import ObsUploader # 导入ObsUploader - obs_uploader = ObsUploader() - logger.info(f"开始上传文件到OBS: {temp_file_path}\n对象键: {object_key}") + # 上传文件到OBS + from Util.ObsUtil import ObsUploader # 导入ObsUploader + obs_uploader = ObsUploader() + logger.info(f"开始上传文件到OBS: {temp_file_path}\n对象键: {object_key}") - # 正确处理元组返回值 - success, response_info = obs_uploader.upload_file( - file_path=temp_file_path, - object_key=object_key - ) + # 正确处理元组返回值 + success, response_info = obs_uploader.upload_file( + file_path=temp_file_path, + object_key=object_key + ) - if success: - # 构造OBS URL - from Config.Config import OBS_SERVER, OBS_BUCKET - obs_url = f"https://{OBS_BUCKET}.{OBS_SERVER}/{object_key}" - logger.info(f"文件上传成功,OBS URL: {obs_url}") - task_info["obs_url"] = obs_url - task_info["object_key"] = object_key - else: - error_msg = f"上传失败: {str(response_info)}" - logger.error(error_msg) - finally: - # 清理临时文件 - if os.path.exists(temp_file_path): - os.remove(temp_file_path) - logger.info(f"临时文件已删除: {temp_file_path}") + if success: + # 构造OBS URL + from Config.Config import OBS_SERVER, OBS_BUCKET + obs_url = f"https://{OBS_BUCKET}.{OBS_SERVER}/{object_key}" + logger.info(f"文件上传成功,OBS URL: {obs_url}") + task_info["obs_url"] = obs_url + task_info["object_key"] = object_key + else: + error_msg = f"上传失败: {str(response_info)}" + logger.error(error_msg) + finally: + # 清理临时文件 + if os.path.exists(temp_file_path): + os.remove(temp_file_path) + logger.info(f"临时文件已删除: {temp_file_path}") # 新增结束 else: diff --git a/dsLightRag/Routes/__pycache__/SunoRoute.cpython-310.pyc b/dsLightRag/Routes/__pycache__/SunoRoute.cpython-310.pyc index b4462c6fe34c00d8c7e69090c750e0833988ffef..46b5d8ce3a20a06dba7fe50388a019df053b7b13 100644 GIT binary patch delta 696 zcmZvaPiPZC6vpRGLgMDn=Fje?*`{e~+Eh(blP0!;7SXDRK}*$x2rX8fgT^F`;rEN`tmtEQ8@KBF+G$Ays@BW~1y7 zJG}1Nm@rjT+kT6PN*on-q)9jWObykF&a!Nbzw>L4FJ31s=O%8_bOEVL6ZWeMYoeDu zZ;17udhOr3<6#_?eGlv?%U2V%0kaPX_BDwacN7I%!6q;&bZ*-##w$rwW--c&>vW!) zy4jDq$l|SNP^u2rQf8tyWDWpf$8bPgoy3ILr-LJF=>a!tw0I7{8ykq zT+cVuiq;-R#S)nsdjbx|>$aH;J82uJM^R?e_i2k7AzlhjUPxiM4lF0=phL3=Z68Zp z@Q3!alMX%Aqikl|!_IEIs1wvRCoKLlsCjeDnfyaghgJSHn2+Sl)T7iIxJe^W$+qZ& zr#vI)Lx1U*V6XWdIS;uGmt`t_@h;t7zPVylJ65;^)R^Pl$R{XwcB4&zSw5u>d9H|m zW?bd->Nl9Y3)W96HK#65ZgPD;- zV@x!J#<`dflJ;Vv7X$U=Nj!NpBwoCEG?R?t@HiNtQt#pz0_p!_+hWSXpcMNdsjleCKgr-{l7%ZM|Yt z5et%b8eB)DW5dIAJCrjk4elPcBURW_a1}Gd#uX3gq=9v`fvW(>mU9XXkS@|qj_^&N zv2wJ8*CNcMpDcl3B$!F^jTh z8Wq!cBNFt@wazD4Y`%@P03uo1A|g-FnArQ>crS~)IR|KbzbuVYAcG@_>f$^(g7PZi z@6~Sj#J{Ss^S$l_JE&0wQR15&s&qPcF*9d|LkHa#QPE*tWY|&jI@QR?EH2}M#4q~$ zvmqMD1F-~cb!mb^MInP#*rRpdq)SiLDc|%PaciPpY1GL|&XBVdkqgAC8~@^u!Yu#o zPX#TOc$g@HglsjJEaT;;d{|2zI-r(dulTZ-0;~2?({SxwAPc_F4GYtYx0ecYg>k+c z+=0p32fYMviI0WayjR3)EL`P<&<_~rGv;A|ADKyC9Xr}2e`^kb#COem7<>41c&uIZ fDp-L4G @@ -49,7 +51,9 @@ - 返回创作页 +