集成Azure AI Video Indexer时遇URL_UNREACHABLE错误求助
Azure AI Video Indexer URL_UNREACHABLE 问题排查与解决
问题情况
集成Azure AI Video Indexer时,调用索引接口的POST请求返回URL_UNREACHABLE错误,但目标下载URL可通过浏览器正常访问,且下载服务器未配置认证。修改响应头为内联流后问题仍未解决。
报错信息
org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: "{"ErrorType":"URL_UNREACHABLE","Message":"Url 'https://server/api/v1/download/3911ed0c-16eb-4ad8-a282-244006f05346' is unreachable. Trace id: '06e23f6f-d3d7-4bd1-a750-51877b30e8e9'."}"
当前使用的SpringBoot下载接口代码
@GetMapping("download/{uuid}") public ResponseEntity<StreamingResponseBody> download(@PathVariable String uuid) throws Exception { DownloadResult result = teService.download(uuid); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + uuid + "\"") .header(HttpHeaders.CONTENT_LENGTH, result.getObjectSize().toString()) .header(HttpHeaders.CONTENT_TYPE, result.getMimeType()) .header(HttpHeaders.PRAGMA, "public") .header(HttpHeaders.EXPIRES, "-1") .header(HttpHeaders.CACHE_CONTROL, "public, must-revalidate, post-check=0, pre-check=0") .body(result.getResponseBody()); }
排查与解决建议
- 检查服务器网络可达性:确认下载服务器的公网IP/域名可被Azure AI服务访问,防火墙/安全组未限制Azure AI服务的IP段(可参考Azure官方提供的AI Video Indexer出站IP范围配置白名单)。
- 简化响应头配置:移除不必要的缓存相关响应头(
PRAGMA、EXPIRES、CACHE_CONTROL),仅保留CONTENT_DISPOSITION、CONTENT_LENGTH、CONTENT_TYPE,避免复杂头导致AI服务解析异常。 - 验证无状态请求兼容性:用curl或Postman发起不带Cookie、自定义User-Agent的纯GET请求,模拟Azure AI服务的调用方式,确认接口能正常返回内容(浏览器访问会自动携带会话信息,但AI服务请求是无状态的)。
- 检查流实现正确性:确认
StreamingResponseBody的实现没有异常,可临时替换为返回静态视频文件测试,排除流处理逻辑的问题。 - 确认URL格式:检查传递给Azure AI的URL是否存在编码问题,确保URL是标准的HTTP/HTTPS格式,无特殊字符未编码的情况。
内容的提问来源于stack exchange,提问作者Roberto Gonzalez
相关产品推荐
相关产品推荐

