AEM ファイル名でサポートされていない文字が原因で発生したアセットのアップロードとメタデータのエラーを解決する

AEM Assetsでは、アセット名とフォルダー名に対して厳密な検証が適用されるため、ファイル名に「*」、「/」、「:」、「#」、「&」、「{}」などのサポートされていない文字が含まれている場合、アップロード、メタデータの更新、公開アクション、およびAPI応答が失敗します。 AEM UIは、これらの文字を完全にブロックし、一括インポートおよびAPI取り込みは、それらをサイレントにサニタイズまたはURL エンコードし、Dynamic MediaやAssets APIなどのダウンストリームシステムは、破損したパスを返します。 その原因は、AEM、基盤となるJCR リポジトリ、および接続されたシステムが、これらの文字を安全に保存または処理できないためです。 影響を受けるアセットの名前を変更して許可された文字のみを使用し、それらのアセットを再取得すると、アップロード、メタデータ編集、公開、クリーン API パスが復元されます。

説明 description

環境:

  • Adobe Experience Manager as a Cloud Service
  • Adobe Experience Manager Managed Services
  • Adobe Experience Manager 6.5 (オンプレミス)
  • AEM Assets、バルクインポーター、Assets API
  • Dynamic Media (Scene7)とAsset Share Commons

問題/症状:

  • AEM UIのアップロードが失敗し、「*文字"*/:[ ']’ |#%{}?& ファイル名"*では使用できません。
  • ファイル名に#が含まれている場合、「公開を管理」は​ 選択したリソースが無効です ​を返します。
  • ファイル名に&またはその他の無効な文字が含まれているアセットでは、メタデータを更新できません。
  • アセット名に特殊文字が含まれているため、リレーションを更新できませんでした
  • 一括インポーターまたはS3読み込みは、アポストロフィなどの文字を%27や%から%25にエスケープすることで、アセットの名前を変更します。
  • Assets APIは、サポートされていない文字が?にデコードされる破損したパスを返します。例えば、上付き文字のプラス記号が?になります。

根本原因:

AEM、その基盤となるJCR リポジトリ、Dynamic MediaやAssets APIなどのダウンストリームシステムでは、特定の文字を含むアセット名を安全に保存または処理できません。 AEM UIでは、クライアントサイドの検証が実施され、一括インポートおよびAPI取り込みでは、JCRのサニタイゼーションルールとURL エンコーディングルールが適用されます。 サポートされていない文字は、取り込みエラー、メタデータ更新エラー、公開の問題、および壊れたAPI応答の原因となります。

確認方法

  1. AEM バリアントの禁止されている文字リストに対してファイル名を確認します。 UI エラーメッセージに、AEM as a Cloud Serviceの無効な文字(* / : [ \ ] | # % { } ? & ;=)とAEM 6.5の同じセットが表示されます。
  2. アセットの取り込み方法を決定:手動UI アップロード、S3 インポート、バルクインポーター、パッケージマネージャー、またはAPI。 手動アップロードは無効な文字に対してすぐに失敗し、S3と一括インポートはサイレントにサニタイズされ、パッケージマネージャーは検証を回避します。

解決策 resolution

問題を解決するには、次の手順に従います。

  1. サポートされていない文字を削除するには、アセットの名前を変更します。 AEM UIで、アセットを選択し、 プロパティ を開いて名前を変更するか、許可された文字のみを使用するサニタイズされたファイル名でアセットを再アップロードします。 メタデータの更新、公開、リレーションなど、失敗したアクションを再試行します。
  2. 数百または数千のアセットに影響を与える一括問題の場合は、体系的な名前の変更を適用します。 サニタイズされた命名規則(&を「and」に置き換え、#を削除し、スペースをハイフンに置き換える)を定義します。その後、修正されたファイルをAEMに再取り込みするか、ソースシステムまたはアップストリーム DAMで自動スクリプトを実行して、アップロード前に名前をサニタイズします。 以前に無効だったアセットを検索し、更新された名前を確認します。
  3. 下流プロセスでの統合の検証: サニタイズされた名前を確認するAsset Share Commonsのサムネールとダウンロード、表示されなくなったAssets API パスの問題を解決する? アップロードと検索のワークフローがあります。 検索、API呼び出し、公開フローをテストします。
  4. 修正を確認します。 サニタイズされたファイル名でアセットを再アップロードし、検証の警告なしでアップロードすること、メタデータが保存されること、選択したリソースが​無効な エラーなしで公開を管理が実行されること、およびAssets APIが無効なパスを返すことを確認します。 キャラクター。

問題が解決しない場合

ファイル名をサニタイズした後もアップロード、メタデータ編集、パブリケーションが失敗する場合、許可された文字のみを含むファイル名に対してAPI応答で誤ったパス形式が表示される場合、またはバルクインポーターが環境全体で一貫して動作しない場合は、Adobe サポートにお問い合わせください。 ファイル名、アップロードメソッド、環境URL、エラーメッセージ、スクリーンショットを正確に指定します。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles