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機能の使用など) - Asset 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 User-Agent (
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 -
サーバー設定や User-Agent 文字列を変更することが不可能な場合は、同時リクエストを減らしボット検出のトリガーを避けるために、スクリプトにレート制限を実装してください。