AEM Assets Author API로 폴더를 만들고 에셋을 가져올 때 발생하는 시간 문제 처리
이 문서에서는 에셋 가져오기 작업 전에 폴더를 완전히 사용할 수 있도록 다시 시도 논리를 구현하여 Adobe Experience Manager(AEM) Assets 작성자 API를 사용하여 에셋을 새로 만든 폴더로 가져올 때 간헐적인 오류를 해결하는 방법에 대해 설명합니다.
설명 description
환경
AEM as a Cloud Service 및 Assets Author API 및 OpenAPI 기반 엔드포인트를 사용하는 기타 배포 모델이 포함된 Adobe Experience Manager(AEM).
증상
자산 가져오기를 자동화할 때 외부 애플리케이션은 다음과 같은 작업을 수행합니다.
- HEAD(폴더 존재) API를 사용하여 대상 폴더가 있는지 확인합니다.
- 폴더 만들기 API를 사용하여 폴더가 없는 경우 폴더를 만듭니다.
- 성공적인 폴더 만들기 응답을 받고 후속 HEAD(폴더가 있음) API 호출이 HTTP 200을(를) 반환합니다.
- 자산을 업로드하려면 Assets 가져오기 API(
/import/fromUrl)를 즉시 호출합니다. - 폴더를 해결할 수 없음 또는 기타 쓰기 관련 오류와 같은 HTTP 400 또는 HTTP 403 오류로 인해 가져오기 요청이 실패하는 경우가 있습니다.
- 경우에 따라 폴더 만들기 API가 HTTP 200을(를) 반환하지만 응답 페이로드는 실패를 나타냅니다(예: 빈 성공 배열 및 오류 메시지).
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": [ ] }
원인
AEM은 폴더 생성 후 최종 일관성을 보여 주기 때문에 폴더를 에셋 작업에 완전히 사용할 수 있도록 잠시 지연됩니다. HEAD(폴더 존재) 응답이 있다고 해서 자산 가져오기에 대한 즉각적인 준비가 항상 보장되는 것은 아닙니다.
해결 방법 resolution
아래 단계에 따라 문제를 해결하십시오.
-
폴더를 만든 후에는 항상 폴더 만들기 API 응답 페이로드를 검사합니다.
-
successes배열에 필요한 폴더 경로가 포함되어 있는지 확인하십시오. -
HTTP 상태가 200인 경우에도 응답에 오류가 있는지 확인하십시오.
-
-
폴더를 만든 후 즉시 Assets 가져오기 API를 호출하지 마십시오. 대신 제한 재시도 메커니즘을 구현합니다.
-
폴더 존재 확인을 다시 시도하기 전에 잠시(예: 1초) 기다리십시오.
-
제한된 횟수만큼 검사를 다시 시도합니다(예: 1초, 2초, 4초와 같이 지연이 증가하는 경우 2~3번 시도).
-
폴더 존재 검사가 일관되게 HTTP 200을(를) 반환하고 폴더를 사용할 수 있는 것으로 확인한 후에만 Assets 가져오기 API를 호출합니다(폴더 만들기 응답 성공).
-
-
가져오기 작업이 폴더 해결 또는 일시적인 쓰기/액세스 오류와 함께 계속 실패하는 경우 제한된 횟수만큼 계속 다시 시도한 후에 최종 실패로 처리합니다.
-
지속적인 403 오류가 발생하면 대상 경로에 대한 권한 및 API 액세스 구성을 확인하십시오.
확인: 위의 단계를 수행한 후 폴더 해결 오류 없이 자산 가져오기 작업이 성공했는지 확인합니다.