Adobe Experience Manager as a Cloud Service에서 에셋 관리자 API를 사용할 때 에셋 업로드가 실패합니다
통합에서 com.day.cq.dam.api.AssetManager.createAsset과(와) 같은 in-JVM API를 사용하는 경우 에셋 업로드가 실패합니다. 이러한 API는 더 이상 사용되지 않으며 Adobe Experience Manager as a Cloud Service에서 바이너리 업로드에 대해 지원되지 않습니다. AEM JVM 내에서 바이너리를 업로드하는 것은 클라우드 안티 패턴으로 처리됩니다. 이 문제를 해결하려면 다이렉트 이진 업로드 워크플로우로 마이그레이션하거나 자산 수집에 일괄 가져오기 를 사용합니다.
설명 description
환경
- Adobe Experience Manager as a Cloud Service
- Adobe Developer App Builder
- AEM Dynamic Media
문제/증상
- BPA 보고서 플래그 unsupported.asset.api
com.day.cq.dam.api.AssetManager.createAsset또는 유사한 API 사용- AEM JVM 내에서 실행된 자산 업로드 시도
- 자산 업로드가 Experience Manager JVM 내에서 실행되지 않아야 한다는 경고
- 개발자 경고는 Experience Manager JVM 내에서 자산 업로드를 실행하지 말아야 함을 나타냅니다
해결 방법 resolution
-
코드베이스에서
com.day.cq.dam.api.AssetManager.createAsset,createOrReplaceAsset및 AEM 내에서 바이너리를 작성하는 기타 에셋 생성 메서드를 검색합니다. -
BPA 플래그 또는 IDE 경고가 unsupported.asset.api와(과) 같은 API를 참조하는지 확인합니다.
-
영향을 받는 코드를 찾을 수 없는 경우 BPA 출력 및 파일 경로를 수집하여 Adobe 지원 팀과 공유하십시오.
-
아래의 진단 분기 사용:
- 외부 시스템에서 에셋을 업로드하는 경우 직접 이진 업로드 API(
initiateupload → binary upload → complete-upload)를 사용하십시오. - 대용량 수집을 수행하는 경우 클라우드 저장소(S3, Azure, GCP, Dropbox, OneDrive)에서 AEM 일괄 가져오기를 사용합니다.
- 정기적으로 예약된 수집이 필요한 경우 Adobe App Builder + AEM Assets HTTP API를 사용하십시오.
- 외부 시스템에서 에셋을 업로드하는 경우 직접 이진 업로드 API(
-
사용 사례에서 JVM 내 자산 업로드가 필요하지 않은지 확인합니다.
-
Adobe Developer Console에서 OAuth 서버 간 자격 증명을 생성합니다.
-
자격 증명에 올바른 제품 프로필을 할당합니다.
-
액세스 토큰을 생성하고 Adobe Developer Console이 유효한 전달자 토큰을 반환하는지 확인하십시오.
-
토큰 생성에 실패하면 할당된 제품 프로필에 쓰기 권한이 포함되어 있는지 확인합니다.
-
AEM 작성자에 로그인하고 도구
>보안>사용자(으)로 이동합니다. -
첫 번째 API 호출 후에 나타나는 기술 계정 사용자를 찾습니다.
-
사용자가
/content/dam에 대해jcr:read및rep:write권한이 있는 서비스 사용자 그룹에 속해 있는지 확인하십시오. -
서비스 사용자 그룹에 대한 도구
>보안>사용 권한을 확인하세요. -
다이렉트 이진 업로드 워크플로우를 시작합니다.
-
바이너리를 반환된 클라우드 스토리지 위치에 직접 업로드합니다.
-
업로드 요청을 완료하여 AEM 에셋 처리를 시작합니다.
-
대상 폴더의 Assets
>파일>(으)로 이동하여 자산이 대상 폴더에 표시되는지 확인하십시오. -
업로드에 실패하면 API 요청 및 응답 페이로드를 수집하고 Adobe 지원 팀과 공유합니다.
-
자산을 지원되는 클라우드 저장소 공급자로 이동하고 AEM에서 일괄 가져오기를 구성하십시오.
-
가져온 에셋이 AEM에 표시되는지 확인합니다.