大量影像上傳至AEM Dynamic Media失敗,並出現「不支援的檔案格式」錯誤
大量影像上傳至Adobe Experience Manager (AEM) Dynamic Media或Scene7會失敗,並產生 不是支援的檔案格式 或 不是有效的格式 等錯誤,即使影像是有效的JPG/JPEG檔案亦然。 此問題通常發生在從遠端伺服器自動擷取期間。 這通常涉及指令碼或API呼叫。
該問題源於遠端伺服器上的機器人保護機制,其會封鎖來自預設使用者端的請求,導致AEM將HTML錯誤頁面誤解為影像檔案。
若要修正此問題,請更新使用者代理字串或調整伺服器設定,以允許在不觸發機器人保護的情況下下載影像。
說明 description
環境
- 產品: Adobe Experience Manager Dynamic Media / Scene7
- 上傳方法: 大量資產擷取、自動指令碼或API呼叫(例如,使用
UploadUrl功能) - 資產Source: 透過公開URL的遠端/外部伺服器(例如外部DAM、產品存放庫、合作夥伴平台)
問題/症狀
- JPG和JPEG影像無法上傳,並在Scene7工作記錄檔中標示為 不支援的檔案格式 或 不是有效的格式。
- 部分/不一致的成功:批次作業中的某些檔案已正確上傳,而其他檔案則會失敗。
- 一般而言,從相同URL手動上傳或下載資產(使用瀏覽器)即可運作。
根本原因
- 裝載影像檔案的遠端伺服器會使用伺服器端的機器人保護功能,封鎖快速或自動的要求。
- 來自預設Apache HttpClient User-Agent (
Apache-HttpClient/4.5.x)的要求會加上標籤並遭到封鎖。 - 伺服器以 HTTP 429 (太多要求) 回應,並傳回HTML錯誤頁面而非影像。
- Dynamic Media伺服器會嘗試將資產URL的回應當成影像來處理;由於它實際上是HTML而非JPEG,因此會將它回報為 不支援的檔案格式 或 不是有效的格式。
解決方法 resolution
若要修正問題:
-
設定遠端伺服器以允許來自預設Apache HttpClient使用者代理程式(
Apache-HttpClient/4.5.14)的要求。 -
或者,修改您的指令碼或應用程式以使用模擬標準瀏覽器的不同使用者代理字串,例如:
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