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

本文包含面向 Assets as a Cloud Service. 它包括新的资产上传模块、API引用,以及有关后处理工作流中提供支持的信息。

Experience Manager Assets API和操作

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

注意

某些API仍然存在,但不受支持(表示为×)。 请尽量不要使用这些API。

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

资产上传

在 Experience Manager as a Cloud Service,您可以使用HTTP API直接将资产上传到云存储。 下面是上载二进制文件的步骤。 在外部应用程序中执行这些步骤,而不是在 Experience Manager JVM。

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

直接二进制上传协议概述

重要

在外部应用程序中而不是 Experience Manager JVM。

该方法可以对资产上传进行可伸缩、更高性能的处理。 与 Experience Manager 6.5为:

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

请参阅客户端代码以在开源环境中实施此方法 aem上传库.

启动上传

将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://[aem_server]:[port]/content/dam.completeUpload.json""/content/dam.completeUpload.json" 请参阅 完成上载.
  • folderPath (字符串):上传二进制文件的文件夹的完整路径。
  • (files) (数组):元素列表,其长度和顺序与启动请求中提供的二进制信息列表的长度和顺序相匹配。
  • fileName (字符串):相应二进制文件的名称,在启动请求中提供。 此值应包含在完整请求中。
  • mimeType (字符串):相应二进制文件的mime类型,在启动请求中提供。 此值应包含在完整请求中。
  • uploadToken (字符串):对应二进制文件的上传令牌。 此值应包含在完整请求中。
  • uploadURIs (数组):其值是应将二进制内容上传到的完整URI的字符串列表(请参阅 上载二进制文件)。
  • minPartSize (数字):可提供给任何 uploadURIs,如果有多个URI。
  • maxPartSize (数字):可提供给 uploadURIs,如果有多个URI。

上载二进制文件

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

实现此目的的一种潜在方法是,根据API提供的上传URI数量计算部件大小。 例如,假设二进制文件的总大小为20,000字节,并且上传URI的数量为2。 然后,执行以下步骤:

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

如果上传成功,服务器将使用 201 状态代码。

完成上传

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

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

如果资产存在且 createVersion nor replace ,则 Experience Manager 使用新的二进制文件更新资产的当前版本。

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

只有在为文件调用完整URL后,才会完成上传二进制文件的过程。 上传过程完成后,会处理资产。 即使资产的二进制文件已完全上传,但上传过程未完成,处理也不会开始。 如果上传成功,服务器将回复 200 状态代码。

开源上载库

要了解有关上传算法的更多信息或构建您自己的上传脚本和工具,Adobe提供了开源库和工具:

已弃用的资产上传API

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

资产处理和后处理工作流

在 Experience Manager,则资产处理基于 处理配置文件 使用 资产微服务. 处理不需要开发人员扩展。

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

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

如果您从以前的 Experience Manager,则可以使用资产微服务处理资产。 云原生资产微服务的配置和使用更简单。 在 DAM更新资产 不支持以前版本中的工作流。 有关支持类的更多信息,请参阅 Java API引用或Javaocs.

以下技术工作流模型已被资产微服务取代,或者无法获得支持:

  • 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.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.SendDownloadAssetEmailProcess
  • com.day.cq.dam.similaritysearch.internal.workflow.smarttags.StartTrainingProcess
  • com.day.cq.dam.similaritysearch.internal.workflow.smarttags.TransferTrainingDataProcess
  • com.day.cq.dam.switchengine.process.SwitchEngineHandlingProcess
  • com.day.cq.dam.core.process.GateKeeperProcess
  • com.day.cq.dam.s7dam.common.process.DMEncodeVideoWorkflowCompletedProcess
  • com.day.cq.dam.core.process.DeleteImagePreviewProcess
  • com.day.cq.dam.video.FFMpegTranscodeProcess
  • com.day.cq.dam.core.process.ThumbnailProcess
  • com.day.cq.dam.video.FFMpegThumbnailProcess
  • com.day.cq.dam.core.process.CreateWebEnabledImageProcess
  • com.day.cq.dam.core.process.CreatePdfPreviewProcess
  • com.day.cq.dam.s7dam.common.process.VideoUserUploadedThumbnailProcess
  • com.day.cq.dam.s7dam.common.process.VideoThumbnailDownloadProcess
  • com.day.cq.dam.s7dam.common.process.VideoProxyServiceProcess
  • com.day.cq.dam.scene7.impl.process.Scene7UploadProcess
  • com.day.cq.dam.s7dam.common.process.S7VideoThumbnailProcess
  • com.day.cq.dam.core.process.MetadataProcessorProcess
  • com.day.cq.dam.core.process.AssetOffloadingProcess
  • com.adobe.cq.dam.dm.process.workflow.DMImageProcess

在此页面上