Assets HTTP API assets-http-api

CAUTION
AEM 6.4已结束扩展支持,本文档将不再更新。 有关更多详细信息,请参阅 技术支助期. 查找支持的版本 此处.

资产HTTP API允许对数字资产(包括对元数据、演绎版和注释)以及使用的结构化内容执行创建读取更新 — 删除(CRUD)操作 Experience Manager 内容片段。 在 /api/assets 和作为REST API实施。

要访问API,请执行以下操作:

  1. 在以下位置打开API服务文档: https://[hostname]:[port]/api.json.
  2. 按照Assets服务链接,以 https://[hostname]:[server]/api/assets.json.

API响应是某些MIME类型的JSON文件,也是所有MIME类型的响应代码。 JSON响应是可选的,并且可能不可用,例如PDF文件。 依赖响应代码进行进一步分析或操作。

在 关闭时间,则资产及其演绎版无法通过 Assets web界面和通过HTTP API。 如果 开始时间 是未来的,或 关闭时间 是过去。

CAUTION
HTTP API更新元数据属性jcr 命名空间。 但是,Experience Manager用户界面会更新 dc 命名空间。

数据模型 data-model

资产HTTP API公开了两个主要元素:文件夹和资产(对于标准资产)。

文件夹 folders

文件夹与传统文件系统中的目录类似。 它们是其他文件夹或断言的容器。 文件夹具有以下组件:

实体:文件夹的实体是其子元素,子元素可以是文件夹和资产。

属性:

  • name 是文件夹的名称。 这与URL路径中不带扩展名的最后一个区段相同。
  • title 是文件夹的可选标题,可以显示该标题而不是其名称。
NOTE
文件夹或资产的某些属性会映射到其他前缀。 的 jcr 前缀 jcr:title, jcr:descriptionjcr:language 替换为 dc 前缀。 因此,在返回的JSON中, dc:titledc:description 包含的值为 jcr:titlejcr:description,分别为。

链接 文件夹会显示三个链接:

  • self:链接到自身。
  • parent:链接到父文件夹。
  • thumbnail:(可选)链接到文件夹缩略图图像。

Assets assets

在Experience Manager中,资产包含以下元素:

  • 资产的属性和元数据。
  • 多个演绎版,如原始演绎版(即最初上传的资产)、缩略图和各种其他演绎版。 其他演绎版可以是不同大小、不同视频编码的图像,或从PDF或Adobe InDesign文件中提取的页面。
  • 可选注释。

在 Experience Manager 文件夹具有以下组件:

  • 实体:资产的子项是其演绎版。
  • 属性.
  • 链接.

资产HTTP API包括以下功能:

NOTE
为方便阅读,以下示例省略了完整的cURL符号。 事实上,符号与 Resty 是的脚本包装器 cURL.

前提条件

  • 访问 https://[aem_server]:[port]/system/console/configMgr.
  • 导航到 AdobeGranite CSRF过滤器.
  • 确保资产 筛选方法 包括: POST, PUT, DELETE.

检索文件夹列表 retrieve-a-folder-listing

检索现有文件夹及其子实体(子文件夹或资产)的警报器表示形式。

请求: GET /api/assets/myFolder.json

响应代码:响应代码为:

  • 200 — 好 — 成功。
  • 404 — 未找到 — 文件夹不存在或无法访问。
  • 500 — 内部服务器错误 — 如果其他问题出现。

响应:返回的实体类别是资产或文件夹。 包含实体的属性是每个实体的完整属性集的子集。 为了获得实体的完整表示形式,客户端应检索链接所指向的URL的内容,该链接包含 rel of self.

创建文件夹 create-a-folder

创建新 sling: OrderedFolder 在给定路径上。 如果 * 提供的不是节点名称,因此servlet使用参数名称作为节点名称。 被接受为请求数据是新文件夹的Siren表示形式或一组名称 — 值对,编码为 application/www-form-urlencodedmultipart/ form- data,用于直接从HTML表单创建文件夹。 此外,文件夹的属性可以指定为URL查询参数。

API调用失败,错误为 500 响应代码。 调用会返回响应代码 409 文件夹已存在。

参数: name 是文件夹名称。

请求

  • POST /api/assets/myFolder -H"Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"My Folder"}}'
  • POST /api/assets/* -F"name=myfolder" -F"title=My Folder"

响应代码:响应代码为:

  • 201 — 已创建 — 成功创建时。
  • 409 — 冲突 — 如果文件夹已存在。
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。

创建资产 create-an-asset

将提供的文件放置到提供的路径中,以在DAM存储库中创建资产。 如果 * 提供的不是节点名称,servlet使用参数名称或文件名作为节点名称。

参数:参数包括 name (对于资产名称和 file ,用于文件引用。

请求

  • POST /api/assets/myFolder/myAsset.png -H"Content-Type: image/png" --data-binary "@myPicture.png"
  • POST /api/assets/myFolder/* -F"name=myAsset.png" -F"file=@myPicture.png"

响应代码:响应代码为:

  • 201 — 已创建 — 如果资产已成功创建。
  • 409 — 冲突 — 如果资产已存在。
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。

更新资产二进制文件 update-asset-binary

更新资产的二进制文件(原始名称的演绎版)。 更新会触发要执行的默认资产处理工作流(如果已配置)。

请求: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: image/png" --data-binary @myPicture.png

响应代码:响应代码为:

  • 200 — 确定 — 如果资产已成功更新。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作:
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。

更新资产元数据 update-asset-metadata

更新资产元数据属性。 如果您在 dc: 命名空间中,API会更新 jcr 命名空间。 API不会同步两个命名空间下的属性。

请求: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"jcr:title":"My Asset"}}'

响应代码:响应代码为:

  • 200 — 确定 — 如果资产已成功更新。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作:
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。

在之间同步元数据更新 dcjcr 命名空间 sync-metadata-between-namespaces

API方法会更新 jcr 命名空间。 使用触屏UI进行的更新更改了 dc 命名空间。 要在 dcjcr 命名空间中,您可以创建工作流并配置Experience Manager,以在编辑资产时执行工作流。 使用ECMA脚本来同步所需的元数据属性。 以下示例脚本在 dc:titlejcr:title.

var workflowData = workItem.getWorkflowData();
if (workflowData.getPayloadType() == "JCR_PATH")
{
 var path = workflowData.getPayload().toString();
 var node = workflowSession.getSession().getItem(path);
 var metadataNode = node.getNode("jcr:content/metadata");
 var jcrcontentNode = node.getNode("jcr:content");
if (jcrcontentNode.hasProperty("jcr:title"))
{
 var jcrTitle = jcrcontentNode.getProperty("jcr:title");
 metadataNode.setProperty("dc:title", jcrTitle.toString());
 metadataNode.save();
}
}

创建资产演绎版 create-an-asset-rendition

为资产创建新的资产演绎版。 如果未提供请求参数名称,则文件名将用作格式副本名称。

参数:参数包括 name 的名称和 file 作为文件引用。

请求

  • POST /api/assets/myfolder/myasset.png/renditions/web-rendition -H"Content-Type: image/png" --data-binary "@myRendition.png"
  • POST /api/assets/myfolder/myasset.png/renditions/* -F"name=web-rendition" -F"file=@myRendition.png"

响应代码:响应代码为:

  • 201 — 已创建 — 如果演绎版已成功创建。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作:
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。

更新资产演绎版 update-an-asset-rendition

更新后,将分别使用新的二进制数据替换资产演绎版。

请求: PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png

响应代码:响应代码为:

  • 200 — 确定 — 如果演绎版已成功更新。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作:
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。

在资产上添加评论 create-an-asset-comment

创建新的资产评论。

参数:参数包括 message 的留言正文和 annotationData ,以获取JSON格式的注释数据。

请求: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"

响应代码:响应代码为:

  • 201 — 已创建 — 如果注释已成功创建。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作:
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。

复制文件夹或资产 copy-a-folder-or-asset

将提供路径上可用的文件夹或资产复制到新目标。

请求标头:参数包括:

  • X-Destination - API解决方案范围中用于将资源复制到的新目标URI。
  • X-Depth - infinity0. 使用 0 仅复制资源及其属性,而不复制其子项。
  • X-Overwrite — 使用 F 以防止覆盖现有目标处的资产。

请求: COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"

响应代码:响应代码为:

  • 201 — 已创建 — 如果文件夹/资产已复制到非现有目标。
  • 204 — 无内容 — 如果文件夹/资产已复制到现有目标。
  • 412 - PRECONDITATION失败 — 如果缺少请求标头。
  • 500 — 内部服务器错误 — 如果其他问题出现。

移动文件夹或资产 move-a-folder-or-asset

将给定路径上的文件夹或资产移动到新目标。

请求标头:参数包括:

  • X-Destination - API解决方案范围中用于将资源复制到的新目标URI。
  • X-Depth - infinity0. 使用 0 仅复制资源及其属性,而不复制其子项。
  • X-Overwrite — 使用 T 强制删除现有资源或 F 以防止覆盖现有资源。

请求: MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"

响应代码:响应代码为:

  • 201 — 已创建 — 如果文件夹/资产已复制到非现有目标。
  • 204 — 无内容 — 如果文件夹/资产已复制到现有目标。
  • 412 - PRECONDITATION失败 — 如果缺少请求标头。
  • 500 — 内部服务器错误 — 如果其他问题出现。

删除文件夹、资产或演绎版 delete-a-folder-asset-or-rendition

删除提供路径上的资源(-tree)。

请求

  • DELETE /api/assets/myFolder
  • DELETE /api/assets/myFolder/myAsset.png
  • DELETE /api/assets/myFolder/myAsset.png/renditions/original

响应代码:响应代码为:

  • 200 — 确定 — 如果文件夹已成功删除。
  • 412 - PRECONTIME FAILED — 如果找不到或访问根集合,则失败。
  • 500 — 内部服务器错误 — 如果其他问题出现。
recommendation-more-help
4452738f-2bdf-4cd4-9b45-905a69d607ad