在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

  1. 在AEM中搜索com.day.cq.dam.api.AssetManager.createAssetcreateOrReplaceAsset和其他用于编写二进制文件的资源创建方法的代码库。

  2. 验证BPA标记或IDE警告是否引用这些API,如​unsupported.asset.api

  3. 如果找不到受影响的代码,请收集BPA输出和文件路径,并与Adobe支持部门共享它们。

  4. 使用以下诊断分支:

    • 如果从外部系统上传资产,请使用直接二进制上传API (initiateupload → binary upload → complete-upload)。
    • 如果执行高容量摄取,请使用AEM从云存储(S3、Azure、GCP、Dropbox、OneDrive)批量导入
    • 如果需要定期计划摄取,请使用Adobe App Builder + AEM Assets HTTP API
  5. 确认您的用例不需要JVM内资源上传。

  6. 在Adobe Developer Console中生成OAuth服务器到服务器凭据。

  7. 将正确的产品配置文件分配给凭据。

  8. 生成访问令牌并验证Adobe Developer Console是否返回有效的持有者令牌。

  9. 如果令牌生成失败,请验证分配的产品配置文件是否包含写入权限。

  10. 登录到AEM Author并导航到工具>安全>用户

  11. 找到首次API调用之后显示的技术帐户用户。

  12. 验证用户是否属于在/content/dam上具有jcr:readrep:write权限的服务用户组。

  13. 检查 服务 用户组的工具>安全性>权限

  14. 启动直接二进制上传工作流。

  15. 将二进制文件直接上传到返回的云存储位置。

  16. 完成上传请求以开始AEM资源处理。

  17. 导航到目标文件夹中的Assets >文件>,并验证该资产是否显示在目标文件夹中。

  18. 如果上传失败,请收集API请求和响应负载,并与Adobe支持部门共享它们。

  19. 将资源移动到支持的云存储提供商,并在AEM中配置批量导入

  20. 验证导入的资源是否显示在AEM中。

相关阅读

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