简短回答
[InvalidParameter] Failed to download https://… 表示模型服务去下载你传入的素材链接时失败了:不是 API易 网关下载失败,也不是你的 Key、参数或文件损坏。最常见的原因是源站离中国大陆太远、链路抖动,在下载时限内没把文件拉完。
先确认:素材不是我们下载的
接口只把请求里的input.media[].url 原样转给模型服务,素材由模型侧直接回源拉取。所以:
- 我们的网关日志里不会有这个 MP4 的下载记录,在我们这边查「下载失败」查不到东西是正常的;
- 你在源站 nginx 里看到的抓取请求,来自模型服务的抓取器,不是 API易 的服务器。
三类成因怎么分
如果同一个文件(SHA-256 相同)既成功过也失败过,基本可以直接锁定第一类。
实测参考
我们用一个 1.5 MB 的参考视频做过对比(同一文件、同一时段):
模型侧的下载时限在 3 分钟(180 秒)量级,所以 1.5 MB 刚好卡在线上——速率稍好就过,稍差就失败,这就是「时好时坏」的来源。文件越大越必然失败。
怎么解决
1. 把素材放到离中国大陆近的节点
优先顺序:- 香港 / 新加坡 / 日本的 CDN 或对象存储(跨境回源质量最好,也不需要备案)
- 有亚洲节点的国际 CDN(Cloudflare、Bunny、CloudFront 等都可以,注意选香港 / 新加坡 / 东京)
- 源站直出(欧洲、美洲)——最差,也正是当前出问题的场景
.ru、.com 这类境外域名通常没有备案,用不了大陆节点,所以香港 / 新加坡 / 日本是更现实的选择。
2. 压缩素材体积
10 秒 720P 的参考视频通常只有 1–2 MB;如果动辄十几 MB,建议降码率或降分辨率。按上面的实测,超过 3 MB 基本很难在时限内拉完。3. 检查链接本身
- 公网可直接访问,不需要登录态、Cookie、Referer 白名单;
- 返回 200 且
Content-Length完整,支持Range; - 不要用会过期的临时签名链接(或者保证在任务跑完前不过期)。
4. 不要靠重试解决
重试只会多等几个 3 分钟。链路速率不变,重试的成功率和第一次一样。什么时候联系客服
如果素材已经放到香港 / 新加坡 / 日本节点、体积也压到 3 MB 以内,仍然稳定报这个错,把下面三样发给我们:- 任务 ID(
task_id) - 素材完整 URL
- 失败发生的时间(带时区)