Assets HTTP API

資產HTTP API可讓您對數位資產(包括中繼資料、轉譯和注釋)以及使用Experience Manager內容片段的結構化內容進行建立——讀取——更新——刪除(CRUD)作業。 它在/api/assets公開,並實作為REST API。

若要存取API:

  1. https://[hostname]:[port]/api.json開啟API服務檔案。
  2. 遵循導向https://[hostname]:[server]/api/assets.json的「資產」服務連結。

API回應是某些MIME類型的JSON檔案,也是所有MIME類型的回應代碼。 JSON回應是選擇性的,可能無法使用,例如PDF檔案。 請依賴回應程式碼進行進一步分析或動作。

在關閉時間之後,資產及其轉譯無法透過Assets網頁介面和HTTP API使用。 如果開機時間是將來或關機時間是過去,則API會傳回404錯誤訊息。

注意

HTTP API會更新命名空 間中的中繼資料 jcr 屬性。不過,Experience Manager用戶介面會更新dc命名空間中的元資料屬性。

資料模型

資產HTTP API會公開兩個主要元素、資料夾和資產(適用於標準資產)。

資料夾

資料夾與傳統檔案系統中的目錄類似。 它們是其他資料夾或斷言的容器。 資料夾具有以下元件:

實體:資料夾的實體是其子元素,可以是資料夾和資產。

屬性:

  • name 是資料夾的名稱。這與URL路徑中沒有副檔名的最後一個區段相同。
  • title 是可顯示的資料夾的可選標題,而非其名稱。
注意

資料夾或資產的某些屬性會對應至不同的首碼。 jcr:titlejcr:descriptionjcr:languagejcr前置詞被dc前置詞替換。 因此,在傳回的JSON中,dc:titledc:description分別包含jcr:titlejcr:description的值。

LinksFolders 會公開三個連結:

  • self:連結到自己。
  • parent:連結至父資料夾。
  • thumbnail:(選用)資料夾縮圖影像的連結。

資產

在Experience Manager中,資產包含下列元素:

  • 資產的屬性和中繼資料。
  • 多個轉譯,例如原始轉譯(原始上傳的資產)、縮圖和各種其他轉譯。 其他轉譯可能是不同大小的影像、不同的視訊編碼,或從PDF或Adobe InDesign檔案擷取的頁面。
  • 選用的注釋。

在Experience Manager中,資料夾具有以下元件:

  • 實體:資產的子系是其轉譯。
  • 屬性.
  • 連結.

資產HTTP API包含下列功能:

注意

為方便閱讀,下列範例會省略完整的cURL符號。 事實上,該符號確實與Resty相關,後者是cURL的指令碼包裝函式。

必備條件

  • 存取 https://[aem_server]:[port]/system/console/configMgr.
  • 導覽至​Adobe花崗岩CSRF濾鏡
  • 請確定屬性​篩選方法​包含:POSTPUTDELETE

檢索列出的資料夾

檢索現有資料夾及其子實體(子資料夾或資產)的Siren表示法。

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

回應碼:響應代碼為:

  • 200 —— 好——成功。
  • 404 —— 找不到——資料夾不存在或無法訪問。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

回應:傳回的實體類別為資產或資料夾。包含實體的屬性是每個實體的完整屬性集的子集。 為了獲得實體的完整表示法,客戶端應檢索連結指向的URL內容,該連結具有selfrel

建立資料夾

建立新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 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

建立資產

將提供的檔案置於提供的路徑,以在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 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

更新資產二進位檔

更新資產的二進位格式(原始名稱的轉譯)。 更新會觸發預設資產處理工作流程,如果已設定,則會執行。

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

回應碼:響應代碼為:

  • 200 —— 確定——如果資產已成功更新。
  • 404 —— 找不到——如果在提供的URI中找不到或訪問資產,請執行此操作。
  • 412 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

更新資產中繼資料

更新資產中繼資料屬性。 如果您更新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 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

dcjcr命名空間之間同步中繼資料更新

API方法會更新jcr命名空間中的中繼資料屬性。 使用Touch-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();
}
}

建立資產轉譯

為資產建立新的資產轉譯。 如果未提供請求參數名稱,則會使用檔案名稱做為轉譯名稱。

參數:這些參數 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 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

更新資產轉譯

更新會分別以新的二進位資料取代資產轉譯。

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

回應碼:響應代碼為:

  • 200 —— 確定——如果已成功更新轉譯。
  • 404 —— 找不到——如果在提供的URI中找不到或訪問資產,請執行此操作。
  • 412 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

在資產上新增註解

建立新資產註解。

參數:參數是 message 用於注釋的消息主體和 annotationData JSON格式的注釋資料。

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

回應碼:響應代碼為:

  • 201 —— 已建立——如果已成功建立注釋。
  • 404 —— 找不到——如果在提供的URI中找不到或訪問資產,請執行此操作。
  • 412 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

複製資料夾或資產

複製位於提供路徑中的可用資料夾或資產,以連至新目標。

請求標題:參數包括:

  • 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 —— 前提條件失敗——如果缺少請求標題。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

移動資料夾或資產

將指定路徑上的資料夾或資產移動到新目標。

請求標題:參數包括:

  • 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 —— 前提條件失敗——如果缺少請求標題。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

刪除資料夾、資產或轉譯

刪除提供路徑上的資源(-tree)。

要求

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

回應碼:響應代碼為:

  • 200 —— 確定——如果資料夾已成功刪除。
  • 412 - PRECONDITATION FAILED —— 如果找不到或存取根系列。
  • 500 —— 內部伺服器錯誤——如果有其它問題。

本頁內容

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now