Adobe Experience Manager Assets API和开发人员参考资料

本文包含为Assets的开发者提供的建议、参考材料和资源作为Cloud Service。 它包括新的资产上传模块、API参考以及有关后处理工作流中提供的支持的信息。

Experience Manager Assets API和操作

Assets as提供 Cloud Service 了多个API以编程方式与数字资产交互。每个API都支持特定用例,如下表中所述。 Assets用户界面、Experience Manager桌面应用程序和Adobe Asset Link支持所有或部分操作。

注意

某些API继续存在,但不受主动支持(用×表示),且不得使用。

支持级别 描述
选定 支持
× 不受支持. 不要使用。
- 不可用
用例 aem-upload AEM / Sling / JCRJava API Asset compute服务 Assets HTTP API Sling GET / POST Servlet GraphQL (预览)
原始二进制
创建原始 选定 × - × × -
阅读原件 - × 选定 选定 选定 -
更新原始 选定 × 选定 × × -
删除原始 - 选定 - 选定 选定 -
复制原始 - 选定 - 选定 选定 -
移动原始 - 选定 - 选定 选定 -
元数据
创建元数据 - 选定 选定 选定 选定 -
读取元数据 - 选定 - 选定 选定 -
更新元数据 - 选定 选定 选定 选定 -
删除元数据 - 选定 选定 选定 选定 -
复制元数据 - 选定 - 选定 选定 -
移动元数据 - 选定 - 选定 选定 -
内容片段(CF)
创建CF - 选定 - 选定 - -
阅读CF - 选定 - 选定 - 选定
更新CF - 选定 - 选定 - -
删除CF - 选定 - 选定 - -
复制CF - 选定 - 选定 - -
移动CF - 选定 - 选定 - -
版本
创建版本 选定 选定 - - - -
阅读版本 - 选定 - - - -
删除版本 - 选定 - - - -
文件夹
创建文件夹 选定 选定 - 选定 - -
读取文件夹 - 选定 - 选定 - -
删除文件夹 选定 选定 - 选定 - -
复制文件夹 选定 选定 - 选定 - -
移动文件夹 选定 选定 - 选定 - -

资产上传

Experience Manager as Cloud Service o提供了将资产上传到存储库的新方法。用户可以使用HTTP API直接将资产上传到云存储。 上传二进制文件的步骤有:

  1. 提交HTTP请求。它通知Experience Manager部署您上传新二进制文件的意图。
  2. 将二进制内容 POST到由启动请求提供的一个或多个URI。
  3. 提交HTTP请 求以通知服务器二进制内容已成功上传。

直接二进制上传协议概述

该方法提供了可伸缩、更高效的资产上传处理。 与Experience Manager 6.5相比的区别是:

  • 二进制文件不会通过Experience Manager,现在只需将上传过程与为部署配置的二进制云存储进行协调。
  • 二进制云存储可与内容投放网络(CDN)或边缘网络一起使用。 CDN会选择更接近客户端的上传端点。 当数据传输到附近端点的距离较短时,上传性能和用户体验会得到改善,尤其对于地理上分布的团队而言。
注意

请参阅在开源aem-upload库中实现此方法的客户端代码。

启动上传

将HTTPPOST请求提交到所需的文件夹。 资产会在此文件夹中创建或更新。 包括选择器.initiateUpload.json,以指示请求是启动二进制文件的上传。 例如,应创建资产的文件夹的路径为/assets/folder。 POST请求为POST https://[aem_server]:[port]/content/dam/assets/folder.initiateUpload.json

请求主体的内容类型应为application/x-www-form-urlencoded表单数据,其中包含以下字段:

  • (string) fileName: 必填. 资产在Experience Manager中显示的名称。
  • (number) fileSize: 必填. 要上传的资产的文件大小(以字节为单位)。

只要每个二进制文件都包含必填字段,单个请求就可以用于启动多个二进制文件的上载。 如果请求成功,则请求将以201状态代码和包含JSON数据的正文进行响应,格式如下:

{
    "completeURI": "(string)",
    "folderPath": (string)",
    "files": [
        {
            "fileName": "(string)",
            "mimeType": "(string)",
            "uploadToken": "(string)",
            "uploadURIs": [
                "(string)"
            ]
        }
    ]
}
  • completeURI (字符串):二进制文件完成上传时调用此URI。URI可以是绝对URI或相对URI,客户端应能处理其中任何一个URI。 也就是说,该值可以是"https://author.acme.com/content/dam.completeUpload.json""/content/dam.completeUpload.json"请参见完整上载
  • folderPath (字符串):上载二进制文件的文件夹的完整路径。
  • (files) (阵列):元素列表,其长度和顺序与初始化请求中提供的二进制信息列表的长度和顺序相匹配。
  • fileName (字符串):相应二进制的名称,如启动请求中提供。此值应包括在完整请求中。
  • mimeType (字符串):相应二进制的MIME类型,如启动请求中提供。此值应包括在完整请求中。
  • uploadToken (字符串):相应二进制文件的上传令牌。此值应包括在完整请求中。
  • uploadURIs (阵列):字符串的列表,其值为应将二进制内容上载到的完整URI(请参阅上 载二进制)。
  • minPartSize (数字):如果存在多个URI,则可能提供给任何一个uploadURI的数据的最小长度(以字节为单位)。
  • maxPartSize (数字):如果存在多个URI,则可能提供给任何一个uploadURI的数据的最大长度(以字节为单位)。

上传二进制文件

启动上传的输出包括一个或多个上传URI值。 如果提供了多个URI,则客户端将二进制文件拆分为多个部分,并按顺序对每个URI发出POST请求。 使用所有URI。 确保每个部件的大小都在初始化响应中指定的最小和最大大小范围内。 CDN边缘节点有助于加速请求的二进制文件上传。

实现此目的的一种可能方法是根据API提供的上传URI数计算部件大小。 例如,假定二进制文件的总大小为20,000字节,上传URI的数量为2。 然后,按照以下步骤操作:

  • 通过将总大小除以URI数计算部件大小:20,000 / 2 = 10,000。
  • POST字节范围0-9,999到上传URI列表中的第一个URI。
  • POST字节范围10,000 —— 在上传URI列表中,二进制到第二个URI的19,999。

如果上传成功,服务器将使用201状态代码对每个请求做出响应。

完成上传

在上载二进制文件的所有部分后,将HTTPPOST请求提交到由启动数据提供的完整URI。 请求主体的内容类型应为application/x-www-form-urlencoded表单数据,包含以下字段。

字段 类型 必需或不需要 描述
fileName 字符串 必填 资产的名称,由初始数据提供。
mimeType 字符串 必填 二进制的HTTP内容类型,由启动数据提供。
uploadToken 字符串 必填 二进制的上传令牌,由启动数据提供。
createVersion 布尔型 可选 如果True和具有指定名称的资产存在,则Experience Manager将创建该资产的新版本。
versionLabel 字符串 可选 如果创建了新版本,则与新版本的资产关联的标签。
versionComment 字符串 可选 如果创建了新版本,则与该版本关联的注释。
replace 布尔型 可选 如果True和具有指定名称的资产存在,则Experience Manager将删除该资产,然后重新创建它。

!![NOTE]
如果资产存在且未指定createVersionreplace,则Experience Manager将使用新的二进制文件更新资产的当前版本。

与启动过程一样,完整请求数据可能包含多个文件的信息。

直到为文件调用完整URL后,才会完成上传二进制文件的过程。 资产会在上传流程完成后进行处理。 即使资产的二进制文件上传完毕,但上传过程未完成,处理也不会开始。

如果成功,服务器将使用200状态代码做出响应。

开放源码上传库

要进一步了解上传算法或构建您自己的上传脚本和工具,Adobe提供开放源码库和工具:

已弃用的资产上传API

仅Adobe Experience Manager作为Cloud Service支持新的上传方法。 Adobe Experience Manager 6.5中的API已弃用。 与上传或更新资产或演绎版(任何二进制上传)相关的方法在以下API中已弃用:

资产处理和后处理工作流

在Experience Manager中,资产处理基于使用资产微服务的​处理用户档案​配置。 处理不需要开发人员扩展。

对于后处理工作流配置,请使用带有自定义步骤的扩展的标准工作流。

支持后处理工作流中的工作流步骤

从Experience Manager的先前版本升级的客户可以使用资产微服务处理资产。 云本机资产微服务的配置和使用更简单。 不支持在先前版本中的DAM更新资产工作流中使用的几个工作流步骤。

Experience Manager 作为支 Cloud Service 持以下工作流步骤:

  • com.day.cq.dam.similaritysearch.internal.workflow.process.AutoTagAssetProcess
  • com.day.cq.dam.core.impl.process.CreateAssetLanguageCopyProcess
  • com.day.cq.wcm.workflow.process.CreateVersionProcess
  • com.day.cq.dam.similaritysearch.internal.workflow.smarttags.StartTrainingProcess
  • com.day.cq.dam.similaritysearch.internal.workflow.smarttags.TransferTrainingDataProcess
  • com.day.cq.dam.core.impl.process.TranslateAssetLanguageCopyProcess
  • com.day.cq.dam.core.impl.process.UpdateAssetLanguageCopyProcess
  • com.adobe.cq.workflow.replication.impl.ReplicationWorkflowProcess
  • com.day.cq.dam.core.impl.process.DamUpdateAssetWorkflowCompletedProcess

以下技术工作流模型将替换为资产微型服务,或者该支持不可用:

  • com.day.cq.dam.core.impl.process.DamMetadataWritebackWorkflowCompletedProcess
  • com.day.cq.dam.core.process.DeleteImagePreviewProcess
  • com.day.cq.dam.s7dam.common.process.DMEncodeVideoWorkflowCompletedProcess
  • com.day.cq.dam.core.process.GateKeeperProcess
  • com.day.cq.dam.core.process.AssetOffloadingProcess
  • com.day.cq.dam.core.process.MetadataProcessorProcess
  • com.day.cq.dam.core.process.XMPWritebackProcess
  • com.adobe.cq.dam.dm.process.workflow.DMImageProcess
  • com.day.cq.dam.s7dam.common.process.S7VideoThumbnailProcess
  • com.day.cq.dam.scene7.impl.process.Scene7UploadProcess
  • com.day.cq.dam.s7dam.common.process.VideoProxyServiceProcess
  • com.day.cq.dam.s7dam.common.process.VideoThumbnailDownloadProcess
  • com.day.cq.dam.s7dam.common.process.VideoUserUploadedThumbnailProcess
  • com.day.cq.dam.core.process.CreatePdfPreviewProcess
  • com.day.cq.dam.core.process.CreateWebEnabledImageProcess
  • com.day.cq.dam.video.FFMpegThumbnailProcess
  • com.day.cq.dam.core.process.ThumbnailProcess
  • com.day.cq.dam.cameraraw.process.CameraRawHandlingProcess
  • com.day.cq.dam.core.process.CommandLineProcess
  • com.day.cq.dam.pdfrasterizer.process.PdfRasterizerHandlingProcess
  • com.day.cq.dam.core.process.AddPropertyWorkflowProcess
  • com.day.cq.dam.core.process.CreateSubAssetsProcess
  • com.day.cq.dam.core.process.DownloadAssetProcess
  • com.day.cq.dam.word.process.ExtractImagesProcess
  • com.day.cq.dam.word.process.ExtractPlainProcess
  • com.day.cq.dam.video.FFMpegTranscodeProcess
  • com.day.cq.dam.ids.impl.process.IDSJobProcess
  • com.day.cq.dam.indd.process.INDDMediaExtractProcess
  • com.day.cq.dam.indd.process.INDDPageExtractProcess
  • com.day.cq.dam.core.impl.lightbox.LightboxUpdateAssetProcess
  • com.day.cq.dam.pim.impl.sourcing.upload.process.ProductAssetsUploadProcess
  • com.day.cq.dam.core.process.ScheduledPublishBPProcess
  • com.day.cq.dam.core.process.ScheduledUnPublishBPProcess
  • com.day.cq.dam.core.process.SendDownloadAssetEmailProcess
  • com.day.cq.dam.core.impl.process.SendTransientWorkflowCompletedEmailProcess

在此页面上