Gestione dei problemi di tempistica durante la creazione di cartelle e l’importazione di risorse con l’API di authoring di AEM Assets

Questo articolo descrive come risolvere gli errori intermittenti che si verificano durante l’importazione di risorse in cartelle appena create utilizzando l’API di authoring di Adobe Experience Manager (AEM) Assets implementando la logica dei tentativi per garantire la piena disponibilità delle cartelle prima delle operazioni di importazione delle risorse.

Descrizione description

Ambienti

Adobe Experience Manager (AEM), incluso AEM as a Cloud Service e altri modelli di distribuzione che utilizzano l’API di authoring di Assets e gli endpoint basati su OpenAPI.

Sintomi

Quando si automatizzano le importazioni delle risorse, un’applicazione esterna:

  • Controlla se esiste una cartella di destinazione utilizzando l’API Folder Exists (HEAD).
  • Crea la cartella se non esiste utilizzando l’API Crea cartella.
  • Riceve una risposta di creazione della cartella e una chiamata API HEAD (Folder Exists) successiva restituisce HTTP 200.
  • Chiama immediatamente l’API di importazione di Assets (/import/fromUrl) per caricare una risorsa.
  • La richiesta di importazione a volte non riesce con HTTP 400 o HTTP 403 errori, ad esempio Impossibile risolvere la cartella o altri errori relativi alla scrittura.
  • In alcuni casi, l’API Create Folder restituisce HTTP 200, ma il payload di risposta indica un errore (ad esempio, una matrice di operazione riuscita vuota e un messaggio di errore).

Esempio di richieste e risposte 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": [ ] }

Causa

AEM mostra un’eventuale coerenza dopo la creazione della cartella, con conseguente breve ritardo prima che la cartella sia completamente disponibile per le operazioni sulle risorse. Una risposta HEAD (Folder Exists) corretta non sempre garantisce la disponibilità immediata per le importazioni delle risorse.

Risoluzione resolution

Per risolvere il problema, segui i passaggi seguenti:

  1. Dopo aver creato una cartella, controlla sempre il payload di risposta Crea API cartella:

    • Verificare che l’array successes contenga il percorso cartella previsto.

    • Verificare la presenza di eventuali errori nella risposta, anche se lo stato HTTP è 200.

  2. Non chiamare immediatamente l’API di importazione di Assets dopo la creazione della cartella. Implementa invece un meccanismo di esecuzione di nuovi tentativi limitati:

    • Attendere un breve intervallo (ad esempio: 1 secondo) prima di ripetere il controllo dell’esistenza della cartella.

    • Ritenta il controllo un numero limitato di volte (ad esempio: 2-3 tentativi con ritardi crescenti come 1s, 2s, 4s).

    • Procedi alla chiamata dell’API di importazione di Assets solo dopo che la verifica della presenza della cartella ha restituito in modo coerente HTTP 200 e che la cartella è stata confermata come disponibile (e la risposta per la creazione della cartella è stata completata correttamente).

  3. Se l’operazione di importazione non riesce e si verificano errori di risoluzione della cartella o errori temporanei di scrittura/accesso, continuare a riprovare per un numero limitato di tentativi prima di trattarla come errore finale.

  4. Se si verificano errori persistenti di 403, convalidare le autorizzazioni e la configurazione dell’accesso API per il percorso di destinazione.

Verifica: dopo aver eseguito le operazioni precedenti, verifica che l’importazione delle risorse abbia esito positivo senza errori di risoluzione della cartella.

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