From e0d0658d7f13afa0e05ea95b1673a802cf2b663d Mon Sep 17 00:00:00 2001 From: CI Bot Date: Fri, 17 Jul 2026 13:02:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?#454=20=E5=89=AA=E8=BE=91=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E7=94=9F=E6=88=90=E7=8A=B6=E6=80=81=E6=8E=A5=E5=8F=A3video=5Fu?= =?UTF-8?q?rl=E6=94=B9=E4=B8=BA=E7=AD=BE=E5=90=8DURL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 注入storage_service,对rendered_url调用get_download_url生成OSS签名URL - 签名过期时间24小时 - 签名失败时降级返回原始URL,不阻断主流程 --- apps/api/app/api/routes/edit_plans_generation.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/api/app/api/routes/edit_plans_generation.py b/apps/api/app/api/routes/edit_plans_generation.py index 2d61302d9..86df4db88 100755 --- a/apps/api/app/api/routes/edit_plans_generation.py +++ b/apps/api/app/api/routes/edit_plans_generation.py @@ -19,6 +19,7 @@ from app.api.routes.edit_plans import ( EditPlanGenerationStatusResponse, ) from app.auth import AuthenticatedUser, get_current_user +from app.core.storage import OSSStorageService, get_storage_service from app.core.celery_app import celery_app from app.core.task_enqueue import GLOBAL_PENDING_LIMIT, USER_PENDING_LIMIT from app.dependencies import get_asset_library_repository, get_asset_repository, get_db_session, get_project_repository @@ -308,6 +309,7 @@ def get_generation_status( db: Session = Depends(get_db_session), current_user: AuthenticatedUser = Depends(get_current_user), project_repository: Any = Depends(get_project_repository), + storage_service: OSSStorageService = Depends(get_storage_service), ) -> EditPlanGenerationStatusResponse: """查询剪辑计划生成进度""" svc = EditPlanService(db) @@ -334,8 +336,15 @@ def get_generation_status( for c in clips ] - # 从 plan.config 中取渲染结果 URL - video_url = (plan.config or {}).get("rendered_url", "") + # 从 plan.config 中取渲染结果 URL,转换为签名 URL + raw_video_url = (plan.config or {}).get("rendered_url", "") + video_url = "" + if raw_video_url: + try: + video_url = storage_service.get_download_url(raw_video_url, expires_seconds=86400) + except Exception as e: + logger.warning("生成视频签名URL失败,返回原始URL: plan_id=%s error=%s", plan_id, e) + video_url = raw_video_url # 从 gen_status 中取进度、错误信息、任务状态 progress = gen_status.get("progress", 0.0) error_message = gen_status.get("error_message", "") -- 2.54.0 From a7a1ddda29f5a21fd4f599c1b799c2f4fee42393 Mon Sep 17 00:00:00 2001 From: CI Bot Date: Fri, 17 Jul 2026 13:23:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20isort=E5=AF=BC=E5=85=A5=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/api/app/api/routes/edit_plans_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/api/app/api/routes/edit_plans_generation.py b/apps/api/app/api/routes/edit_plans_generation.py index 86df4db88..fbd21f518 100755 --- a/apps/api/app/api/routes/edit_plans_generation.py +++ b/apps/api/app/api/routes/edit_plans_generation.py @@ -19,8 +19,8 @@ from app.api.routes.edit_plans import ( EditPlanGenerationStatusResponse, ) from app.auth import AuthenticatedUser, get_current_user -from app.core.storage import OSSStorageService, get_storage_service from app.core.celery_app import celery_app +from app.core.storage import OSSStorageService, get_storage_service from app.core.task_enqueue import GLOBAL_PENDING_LIMIT, USER_PENDING_LIMIT from app.dependencies import get_asset_library_repository, get_asset_repository, get_db_session, get_project_repository from app.services import EditPlanService -- 2.54.0