You've already forked FrameTour-RenderWorker
feat(task): 增强素材URL处理和验证逻辑
- 添加详细的get_material_url方法文档说明优先级逻辑 - 新增get_source_ref方法用于获取素材源引用 - 新增get_bound_material_url方法用于获取绑定素材URL - 在视频渲染处理器中添加HTTP URL格式验证检查 - 当素材URL格式无效时返回详细错误信息和调试日志 - 验证失败时返回E_SPEC_INVALID错误码并提示服务器需提供有效的boundMaterialUrl
This commit is contained in:
@@ -46,6 +46,21 @@ class RenderSegmentVideoHandler(BaseHandler):
|
||||
"Missing material URL (boundMaterialUrl or sourceRef)"
|
||||
)
|
||||
|
||||
# 检查 URL 格式:必须是 HTTP/HTTPS 协议
|
||||
if not material_url.startswith(('http://', 'https://')):
|
||||
source_ref = task.get_source_ref()
|
||||
bound_url = task.get_bound_material_url()
|
||||
logger.error(
|
||||
f"[task:{task.task_id}] Invalid material URL format: '{material_url}'. "
|
||||
f"boundMaterialUrl={bound_url}, sourceRef={source_ref}. "
|
||||
f"Server should provide boundMaterialUrl with HTTP URL."
|
||||
)
|
||||
return TaskResult.fail(
|
||||
ErrorCode.E_SPEC_INVALID,
|
||||
f"Invalid material URL: '{material_url}' is not a valid HTTP URL. "
|
||||
f"Server must provide boundMaterialUrl."
|
||||
)
|
||||
|
||||
render_spec = task.get_render_spec()
|
||||
output_spec = task.get_output_spec()
|
||||
duration_ms = task.get_duration_ms()
|
||||
|
||||
Reference in New Issue
Block a user