本文包含为Assets开发者提供的Cloud Service的建议、参考材料和资源。 它包括新的资产上传模块、API参考以及有关后处理工作流中提供的支持的信息。
Assets as提供 Cloud Service 了多个API以与数字资产进行编程交互。每个API都支持下表所述的特定用例。 Assets用户界面、Experience Manager桌面应用程序和Adobe Asset Link支持所有或部分操作。
某些API仍然存在,但不受主动支持(用×表示)。 请尽量不要使用这些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中,作为Cloud Service,您可以使用HTTP API将资产直接上传到云存储。 上载二进制文件的步骤有:
该方法为资产上传提供了可扩展且更高性能的处理。 与Experience Manager 6.5相比的差异是:
请参阅在开放源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,客户端应能够处理其中任何一个。 也就是说,该值可以是"https://author.acme.com/content/dam.completeUpload.json"
或"/content/dam.completeUpload.json"
请参阅完整上载。folderPath
(字符串):上载二进制文件夹的完整路径。(files)
(数组):元素的列表,其长度和顺序与在启动请求中提供的二进制信息的列表的长度和顺序相匹配。fileName
(字符串):相应二进制的名称,在启动请求中提供。此值应包括在完整请求中。mimeType
(字符串):相应二进制的MIME类型,在启动请求中提供。此值应包括在完整请求中。uploadToken
(字符串):对应二进制文件的上载令牌。此值应包括在完整请求中。uploadURIs
(数组):一个字符串列表,其值是应将二进制内容上载到的完整URI(请参阅上 载二进制)。minPartSize
(数):如果有多个URI,则可向其中任何一个提供的数据的最小长度(以 uploadURIs
字节为单位)。maxPartSize
(数):如果有多个URI,则可能提供给其中任何一个的数据的最大长度(以 uploadURIs
字节为单位)。启动上载的输出包括一个或多个上载URI值。 如果提供了多个URI,则客户端将二进制文件拆分为多个部分,并按顺序对每个URI发出每个部分的POST请求。 使用所有URI。 确保每个部件的大小在初始化响应中指定的最小和最大大小范围内。 CDN边缘节点有助于加快二进制文件的请求上传。
实现此目的的一种可能方法是根据API提供的上载URI数计算部件大小。 例如,假设二进制文件的总大小为20,000字节,而上载URI的数量为2。 然后,按照以下步骤操作:
如果上载成功,服务器将使用201
状态代码对每个请求做出响应。
在上载二进制文件的所有部分后,将HTTPPOST请求提交到由启动数据提供的完整URI。 请求正文的内容类型应为application/x-www-form-urlencoded
表单数据,包含以下字段。
字段 | 类型 | 必需或不需要 | 描述 |
---|---|---|---|
fileName |
字符串 | 必填 | 资产名称,由启动数据提供。 |
mimeType |
字符串 | 必填 | 二进制的HTTP内容类型,由启动数据提供。 |
uploadToken |
字符串 | 必填 | 正如启动数据提供的那样,为二进制上载令牌。 |
createVersion |
布尔型 | 可选 | 如果True 和具有指定名称的资产存在,则Experience Manager会创建该资产的新版本。 |
versionLabel |
字符串 | 可选 | 如果创建了新版本,则与新版本的资产关联的标签。 |
versionComment |
字符串 | 可选 | 如果创建了新版本,则与该版本关联的注释。 |
replace |
布尔型 | 可选 | 如果True 和具有指定名称的资产存在,则Experience Manager将删除该资产,然后重新创建该资产。 |
如果资产存在且未指定createVersion
或replace
,则Experience Manager会使用新的二进制文件更新资产的当前版本。
与启动过程一样,完整的请求数据可能包含多个文件的信息。
在为文件调用完整URL之前,不会完成上传二进制文件的过程。 资产会在上传流程完成后进行处理。 即使资产的二进制文件上传完全但上传过程未完成,处理也不会开始。
如果成功,服务器将使用200
状态代码做出响应。
要进一步了解上传算法或构建您自己的上传脚本和工具,Adobe提供开放源代码库和工具:
仅Adobe Experience Manager作为Cloud Service支持新上载方法。 Adobe Experience Manager 6.5中的API已弃用。 与上传或更新资产或演绎版(任何二进制上传)相关的方法在以下API中已弃用:
AssetManager
Java API,如 AssetManager.createAsset(..)
在Experience Manager中,资产处理基于使用asset microservices的处理用户档案配置。 处理不需要开发人员扩展。
对于后处理工作流配置,请使用带有自定义步骤的扩展的标准工作流。
从Experience Manager的先前版本升级的客户可以使用asset microservices处理资产。 云本机资产微服务的配置和使用更简单。 不支持在早期版本的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