fix(cover): 封面生成前校验视频URL可达性,避免MediaKit超时120秒 #1356
Reference in New Issue
Block a user
Delete Branch "fix/cover-video-url-validation"
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 抽帧超时(120秒),原因是传给 MediaKit 的视频 URL 在 OSS 上不存在(HTTP 404)。
根因链路:
rendered_storage_key指向的预览视频文件不存在 → MediaKit 无法下载 → 轮询 60 次(120秒)后超时 → 500 Internal Server Error修复
在调用 MediaKit
extract_frames之前,先通过 HTTP HEAD 请求检查视频 URL 是否可访问:封面生成失败: 预览视频URL不可访问 (HTTP 404)。请重新生成预览视频后再试。改动文件
packages/shared/ai_service.py: 添加 URL 可达性检查(HEAD 请求)tests/unit/test_mediakit_cover.py: mock HEAD 请求 + 新增 URL 不可达测试用例测试
🚀 预览环境已部署
代码审查结果 - PR #1356
⚠️ 问题(0个需要修改)
无
💡 建议(1个可选)
status_code != 200时,特殊处理 405 状态码(例如记录警告但不抛出异常,或者降级发送一次 GET 请求验证),或者确认业务中的视频源均支持 HEAD 方法。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-08-13 07:24:45 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1356 已关闭或合并,对应的预览环境已被清理。