Lidar com problemas de tempo ao criar pastas e importar ativos com a API do autor do AEM Assets
Este artigo descreve como solucionar falhas intermitentes ao importar ativos para pastas recém-criadas usando a API do Assets Author do Adobe Experience Manager (AEM), implementando a lógica de nova tentativa para garantir que as pastas estejam totalmente disponíveis antes das operações de importação de ativos.
Descrição description
Ambientes
Adobe Experience Manager (AEM), incluindo o AEM as a Cloud Service e outros modelos de implantação usando a API do autor do Assets e endpoints baseados na OpenAPI.
Sintomas
Ao automatizar importações de ativos, um aplicativo externo:
- Verifica se uma pasta de destino existe usando a API Folder Exists (HEAD).
- Cria a pasta se ela não existir usando a API Criar pasta.
- Recebe uma resposta de criação de pasta bem-sucedida, e uma chamada de API Folder Exists (HEAD) subsequente retorna HTTP 200.
- Chama imediatamente a API de Importação do Assets (
/import/fromUrl) para carregar um ativo. - A solicitação de importação às vezes falha com erros HTTP 400 ou HTTP 403, como Não é possível resolver a pasta ou outros erros relacionados à gravação.
- Em alguns casos, a API Criar Pasta retorna HTTP 200, mas a carga de resposta indica falha (Por exemplo: matriz de sucessos vazia e mensagem de erro).
Exemplo de solicitações e respostas da 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
O AEM exibe a consistência eventual após a criação da pasta, resultando em um pequeno atraso antes que a pasta esteja totalmente disponível para operações de ativos. Uma resposta bem-sucedida de Existe uma Pasta (HEAD) nem sempre garante a disponibilidade imediata para importações de ativos.
Resolução resolution
Siga as etapas abaixo para resolver o problema:
-
Depois de criar uma pasta, sempre inspecione a carga de resposta Criar pasta da API:
-
Confirme se a matriz
successescontém o caminho de pasta esperado. -
Verifique se há erros na resposta, mesmo que o status HTTP seja 200.
-
-
Não chame imediatamente a API de importação do Assets após a criação da pasta. Em vez disso, implemente um mecanismo de repetição vinculado:
-
Aguarde um curto intervalo (Por exemplo: 1 segundo) antes de tentar novamente a verificação de existência da pasta.
-
Repita a verificação um número limitado de vezes (por exemplo: 2 a 3 tentativas com atrasos crescentes, como 1s, 2s, 4s).
-
Continue a chamar a API de Importação do Assets somente depois que a verificação de existência da pasta retornar consistentemente HTTP 200 e confirmar que a pasta está disponível (e a resposta de criação da pasta for bem-sucedida).
-
-
Se a operação de importação ainda falhar com erros de resolução de pasta ou de gravação/acesso transitório, continue tentando por um número limitado de tentativas antes de tratá-la como uma falha final.
-
Se ocorrerem erros persistentes de 403, valide as permissões e a configuração de acesso da API para o caminho de destino.
Verificação: depois de seguir as etapas acima, confirme se a operação de importação do ativo foi bem-sucedida sem erros de resolução de pasta.