将批量图像上传到AEM Dynamic Media失败,并出现“文件格式不受支持”错误
将图像批量上传到Adobe Experience Manager (AEM) Dynamic Media或Scene7失败,并出现诸如 文件格式不受支持 或 文件格式无效 等错误,即使图像是有效的JPG/JPEG文件也是如此。 此问题通常发生在从远程服务器自动摄取期间。 它通常涉及脚本或API调用。
该问题源于远程服务器上的机器人保护机制,该机制阻止来自默认客户端的请求,从而导致AEM将HTML错误页面错误解释为图像文件。
要解决此问题,请更新User-Agent字符串或调整服务器设置以允许下载图像而不触发机器人保护。
描述 description
环境
- 产品: Adobe Experience Manager Dynamic Media / Scene7
- 上传方法: 批量资源摄取、自动脚本或API调用(例如,使用
UploadUrl功能) - 资源Source: 通过公共URL的远程/外部服务器(例如,外部DAM、产品存储库、合作伙伴平台)
问题/症状
- JPG和JPEG图像上传失败,并在Scene7作业日志中标记为 不支持的文件格式 或 不是有效的格式。
- 部分成功/不一致成功:批处理作业中的某些文件上传正确,而其他文件则失败。
- 通常,从同一URL手动上传或下载资产(使用浏览器)可正常工作。
根本原因
- 托管图像文件的远程服务器使用服务器端机器人保护来阻止快速或自动请求。
- 来自默认Apache HttpClient用户代理(
Apache-HttpClient/4.5.x)的请求将被标记并阻止。 - 服务器使用 HTTP 429 (请求过多) 进行响应,并返回HTML错误页而不是图像。
- Dynamic Media服务器尝试将资源URL中的响应作为图像处理;由于它实际是HTML而不是JPEG,因此将报告为 不受支持的文件格式 或 不是有效的格式。
解决方法 resolution
要解决此问题:
-
将远程服务器配置为允许来自默认Apache HttpClient用户代理(
Apache-HttpClient/4.5.14)的请求。 -
或者,修改脚本或应用程序以使用模拟标准浏览器的其他User-Agent字符串,例如:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 -
如果无法更改服务器配置或用户代理字符串,请在脚本中实施速率限制以减少并发请求并避免触发机器人检测。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f