fix(dedup): recompute任务从file_url派生OSS下载key,修复重算404 (#1702) #1705
Reference in New Issue
Block a user
Delete Branch "fix/dedup-recompute-download-key-1702"
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?
Issue #1702 连带修复:recompute-dedup 任务 OSS 下载 key 错误(404)
PR #1703 合并后在 staging 验证 recompute 时发现:
check_duplicate_task(recompute-dedup 的实际执行入口)从 OSS 重新下载成片时硬编码了projects/{pid}/generated/{vid}/{vid}.mp4但成片真实 OSS key 是生成上传时的(
generation.py_upload_and_record):generated/projects/{pid}/tasks/{tid}/rendered_<hash>.mp4硬编码 key 从不存在 → 所有 recompute 任务下载 404、重试 3 次后失败,查重数据永远无法重算。正常生成流程用本地渲染文件算指纹(
dedup_helpers.create_video_record_and_dedup传video_path),不经此任务,所以一直没暴露。修复
video.file_url派生(download_file内部会 normalize 完整 URL)Refs #1702
🚀 预览环境已部署
Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
check_duplicate_task(recompute-dedup的执行入口)硬编码下载 projects/{pid}/generated/{vid}/{vid}.mp4,但成片真实OSS key是生成时的 generated/projects/{pid}/tasks/{tid}/rendered_*.mp4(generation.py _upload_and_record),导致所有recompute任务下载404、查重数据无法重算。 正常生成流程用本地渲染文件算指纹不受影响,仅recompute路径中招。 改为优先从video.file_url解析下载key,旧key模式仅作回退。 补源码级回归单测。8ba7108eddto46325f55ca代码审查结果 - PR #1705
⚠️ 问题(0个需要修改)
无
💡 建议(1个可选)
inspect.getsource进行静态字符串匹配来验证逻辑。这种方式非常脆弱,一旦代码格式化、变量重命名或逻辑重构(即使逻辑正确),测试就会失败。建议改为单元测试行为:Mockvideo对象和storage_service,调用check_duplicate_task,然后验证storage_service.download_file是否被传入了正确的参数(即video.file_url的值)。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-09-05 00:34:57 | 模型:
🗑️ 预览环境已清理
PR #1705 已关闭或合并,对应的预览环境已被清理。