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:

  1. Depois de criar uma pasta, sempre inspecione a carga de resposta Criar pasta da API:

    • Confirme se a matriz successes contém o caminho de pasta esperado.

    • Verifique se há erros na resposta, mesmo que o status HTTP seja 200.

  2. 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).

  3. 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.

  4. 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.

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