fix: thumbnail_url未写入generated_videos + 缩略图key避免覆盖 #1528
Reference in New Issue
Block a user
Delete Branch "fix/thumbnail-v2"
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?
Bug 1: thumbnail_url 未写入 generated_videos 表
render_adapter 渲染完成后 thumbnail_url 通过 RenderAdapterResult 返回,但 generation.py 链路未传递给 create_video_record_and_dedup,导致前端拿不到封面。
修复:_render_from_edit_plan 补充返回 thumbnail_url → _upload_and_record 新增参数透传 → create_video_record_and_dedup 写入 DB
Bug 2: 缩略图存储 key 冲突
原 key rendered/{plan_id}/thumbnail.jpg 导致同 plan 多次渲染互相覆盖。
改为 rendered/{plan_id}/thumbnails/{task_id}.jpg
Bug 1: render_adapter渲染完成后thumbnail_url未传递给create_video_record_and_dedup - _render_from_edit_plan 补充返回 result.thumbnail_url - _upload_and_record 新增 thumbnail_url 参数并透传 - generate_video 调用处同步更新 Bug 2: 缩略图存储key rendered/{plan_id}/thumbnail.jpg 导致同plan多次渲染互相覆盖 - 改为 rendered/{plan_id}/thumbnails/{task_id}.jpg🚀 预览环境已部署
代码审查结果 - PR #1528
⚠️ 问题(1个需要修改)
AttributeError。render_adapter.py中,thumbnail_url被赋值为局部变量,但在generation.py(第585行)中代码尝试通过result.thumbnail_url访问该属性。如果RenderAdapter的内部逻辑没有将局部变量thumbnail_url赋值给返回对象result(Diff 中未体现此赋值),则generation.py在访问该属性时会抛出异常。RenderAdapter的返回对象result是否包含thumbnail_url属性。如果没有,需要在render_adapter.py中添加result.thumbnail_url = thumbnail_url或类似的逻辑,确保数据能正确传递给调用方。💡 建议(1个可选)
job_id进行路径安全校验。thumb_storage_key直接使用了job_id拼接路径。虽然job_id通常由系统生成,但如果该参数可能受外部影响或包含特殊字符(如../),可能会导致对象存储路径异常。建议对job_id进行格式校验或清洗,确保只包含安全字符(如字母数字和短横线)。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-08-28 07:52:27 | 模型:
🗑️ 预览环境已清理
PR #1528 已关闭或合并,对应的预览环境已被清理。