在Adobe Experience Manager as a Cloud Service中使用Asset Manager API时,资源上传失败
当集成使用JVM内API(如com.day.cq.dam.api.AssetManager.createAsset)时,资产上传失败。 这些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报告标志不受支持。asset.api
com.day.cq.dam.api.AssetManager.createAsset或类似API的使用情况- 在AEM JVM中执行的资产上传尝试
- 警告指明资产上传不得在Experience Manager JVM内运行
- 开发人员警告指示资源上传不得在Experience Manager JVM中运行
解决方法 resolution
-
在AEM中搜索
com.day.cq.dam.api.AssetManager.createAsset、createOrReplaceAsset和其他用于编写二进制文件的资源创建方法的代码库。 -
验证BPA标记或IDE警告是否引用这些API,如unsupported.asset.api
-
如果找不到受影响的代码,请收集BPA输出和文件路径,并与Adobe支持部门共享它们。
-
使用以下诊断分支:
- 如果从外部系统上传资产,请使用直接二进制上传API (
initiateupload → binary upload → complete-upload)。 - 如果执行高容量摄取,请使用AEM从云存储(S3、Azure、GCP、Dropbox、OneDrive)批量导入。
- 如果需要定期计划摄取,请使用Adobe App Builder + AEM Assets HTTP API。
- 如果从外部系统上传资产,请使用直接二进制上传API (
-
确认您的用例不需要JVM内资源上传。
-
在Adobe Developer Console中生成OAuth服务器到服务器凭据。
-
将正确的产品配置文件分配给凭据。
-
生成访问令牌并验证Adobe Developer Console是否返回有效的持有者令牌。
-
如果令牌生成失败,请验证分配的产品配置文件是否包含写入权限。
-
登录到AEM Author并导航到工具
>安全>用户。 -
找到首次API调用之后显示的技术帐户用户。
-
验证用户是否属于在
/content/dam上具有jcr:read和rep:write权限的服务用户组。 -
检查 服务 用户组的工具
>安全性>权限。 -
启动直接二进制上传工作流。
-
将二进制文件直接上传到返回的云存储位置。
-
完成上传请求以开始AEM资源处理。
-
导航到目标文件夹中的Assets
>文件>,并验证该资产是否显示在目标文件夹中。 -
如果上传失败,请收集API请求和响应负载,并与Adobe支持部门共享它们。
-
将资源移动到支持的云存储提供商,并在AEM中配置批量导入
-
验证导入的资源是否显示在AEM中。