fix(cover): 修复预览视频存储路径错误导致封面生成 500 #1358
Reference in New Issue
Block a user
Delete Branch "fix/double-slash-oss-path"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
封面生成 API 返回 500,MediaKit 报
DownloadFileError, http status code is 404。根因(两个独立 bug)
Bug 1: 统一渲染引擎 storage_key 路径不匹配(主要问题)
rendered/{plan_id}/{job_id}.mp4edit_plan_generation.py硬编码存储rendered/{plan_id}/output.mp4rendered/f86959d8.../output.mp4→ 404,实际文件在rendered/gen_f869.../d54bcb32....mp4→ 200Bug 2: Worker _upload_and_record 双斜杠路径
project_id为空时(模板编辑器草稿),路径产生projects//tasks///)→ 404修复
edit_plan_generation.pyoutput_url提取实际 storage_keyworker/generation.py//注意
旧数据中已存在的错误路径需要用户重新生成预览。新任务不再产生此问题。
修复两个导致封面生成 MediaKit 404 的存储路径 bug: Bug 1: 统一渲染引擎 storage_key 路径不匹配 - RenderAdapter 实际上传到 rendered/{plan_id}/{job_id}.mp4 - 但 edit_plan_generation.py 硬编码存储 rendered/{plan_id}/output.mp4 - cover.py 通过 storage_key 构造的 URL 指向不存在的文件 → 404 - 修复:从 adapter 返回的 output_url 提取实际 storage_key Bug 2: Worker _upload_and_record 双斜杠路径 - project_id 为空时(模板编辑器草稿),f'generated/projects/{project_id}/tasks/...' 产生 projects//tasks/ 双斜杠 - MediaKit HTTP 客户端规范化 URL(合并 //)→ 404 - 修复:过滤空路径段,新文件不再产生 //🚀 预览环境已部署
代码审查结果 - PR #1358
⚠️ 问题(1个需要修改)
"task_id"而非变量task_id。这会导致生成的存储路径包含 "task_id" 文本而非实际的任务 ID,造成文件上传路径错误,下游服务无法正确访问文件。💡 建议(1个可选)
"tasks"目录层级,新代码构建path_parts时遗漏了该层级,导致目录结构发生变化。请确认是否需要保留tasks层级,若需保留应在列表中补充"tasks"字符串。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-08-13 10:06:22 | 模型:
🗑️ 预览环境已清理
PR #1358 已关闭或合并,对应的预览环境已被清理。