Gestion des problèmes de minutage lors de la création de dossiers et de l’importation de ressources avec l’API de création AEM Assets

Cet article décrit comment résoudre les échecs intermittents lors de l’importation de ressources dans des dossiers nouvellement créés à l’aide de l’API de création Assets Adobe Experience Manager (AEM) en implémentant une logique de reprise pour s’assurer que les dossiers sont entièrement disponibles avant les opérations d’importation de ressources.

Description description

Environnements

Adobe Experience Manager (AEM), y compris AEM as a Cloud Service et d’autres modèles de déploiement utilisant l’API de création Assets et des points d’entrée basés sur OpenAPI.

Symptômes

Lors de l’automatisation des importations de ressources, une application externe :

  • Vérifie si un dossier cible existe à l’aide de l’API Folder Exists (HEAD).
  • Crée le dossier s’il n’existe pas à l’aide de l’API Create Folder.
  • Reçoit une réponse de création de dossier réussie et un appel API Folder Exists (HEAD) suivant renvoie HTTP 200.
  • Appelle immédiatement l’API d’importation Assets (/import/fromUrl) pour charger une ressource.
  • La demande d’importation échoue parfois avec des erreurs HTTP 400 ou HTTP 403, telles que Impossible de résoudre le dossier ou d’autres erreurs liées à l’écriture.
  • Dans certains cas, l’API Créer un dossier renvoie la valeur HTTP 200, mais la payload de réponse indique un échec (par exemple : tableau de succès vide et message d’erreur).

Exemples de requêtes et de réponses d’API

Create Folder API response (failure despite HTTP 200):{"operation": "adobe.folders.createFolders","status": 200,"description": "Created folders","data": { "values": { "successes": [ ]  } },"errors": [ {"type": "https://api.adobeaemcloud.com/adobe/meta/errors/internal_server_error","title": "Internal Server Error","detail": "Failed to create folder /content/dam/folder1 due to an exception: Unable to commit changes to session."}] ,"warnings": [ ] }

Cause

AEM présente une cohérence éventuelle après la création du dossier, ce qui entraîne un court délai avant que le dossier ne soit entièrement disponible pour les opérations sur les ressources. Une réponse HEAD (Folder Exists) réussie ne garantit pas toujours un niveau de préparation immédiat aux importations de ressources.

Résolution resolution

Suivez les étapes ci-dessous pour résoudre le problème :

  1. Après avoir créé un dossier, inspectez toujours la payload de réponse de l’API Créer un dossier :

    • Vérifiez que le tableau successes contient le chemin d’accès au dossier attendu.

    • Vérifiez les erreurs éventuelles dans la réponse, même si l’état HTTP est 200.

  2. N’appelez pas immédiatement l’API d’importation Assets après la création du dossier. Implémentez plutôt un mécanisme de reprise limité :

    • Patientez un court intervalle (par exemple : 1 seconde) avant de retenter la vérification de l’existence du dossier.

    • Réessayez la vérification un nombre limité de fois (par exemple : 2 à 3 tentatives avec des retards croissants, tels que 1, 2, 4).

    • Ne procédez à l’appel de l’API d’importation Assets qu’une fois que la vérification de l’existence du dossier renvoie systématiquement HTTP 200 et que la disponibilité du dossier est confirmée (et que la réponse de création du dossier est réussie).

  3. Si l’opération d’importation échoue toujours avec une résolution de dossier ou des erreurs d’écriture/d’accès transitoires, continuez à réessayer pendant un nombre limité de tentatives avant de la traiter comme un échec final.

  4. Si des erreurs 403 persistantes se produisent, validez les autorisations et la configuration de l’accès à l’API pour le chemin cible.

Vérification : vérifiez que l’opération d’importation de ressources réussit sans erreurs de résolution de dossier après avoir suivi les étapes ci-dessus.

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