1.0 KiB
1.0 KiB
转码媒资 ID 精度与存量兜底修复
取证
- 示例分集
2113150431755636737的video_asset_id为2113150398670966786,与media_asset.id完全一致。 - JS
Number('2113150398670966786')序列化为2113150398670966800, 超出安全整数后发生精度丢失,导致手动转码查询了错误 ID。
修复
- 聚合响应的 episodeId/mediaAssetId/taskId 使用字符串。
- 手动转码仍由后端 Long 接收精确路径 ID。
- 媒资不存在时通过 content 模块的端口按候选 ID 查找分集:
- 分集 id;
- video_asset_id;
- transcode_task.id。
- 找到分集后按 video_url/source_url/objectKey 反查媒资; 文件存在但媒资缺失时补登记并回填分集 video_asset_id。
- 无可用视频时保持明确空态/错误语义。
验证
- 超 2^53 ID 字符串契约。
- 聚合无媒资空态。
- video_url 反查命中。
- 文件存在时补登记。
mvn -pl fruitshorts-module-media,fruitshorts-transcode-worker test。