使用Adobe Experience Manager Assets HTTP API管理數位資產 assets-http-api

版本
文章連結
AEM 6.5
按一下這裡
AEM as a Cloud Service
本文章

開始使用AEM Assets HTTP API overview

AEM Assets HTTP API透過/api/assets提供的REST介面啟用數位資產的CRUD (建立、讀取、更新和刪除)作業。 這些操作適用於資產中繼資料、轉譯和註解。 它包含對內容片段的支援

NOTE
提供內容片段管理API的現代化OpenAPI實作。 如需完整檔案,請參閱內容片段管理API。 建議使用新的OpenAPI實作。 內容片段的Assets HTTP API現有使用應移轉至新的內容片段管理OpenAPI。

若要存取API:

  1. https://[hostname]:[port]/api.json開啟API服務檔案。
  2. 依循前往https://[hostname]:[server]/api/assets.json的Assets服務連結。

API回應是部分MIME型別的JSON檔案,以及所有MIME型別的回應代碼。 JSON回應為選用專案,可能無法用於PDF等檔案。 仰賴回應程式碼進行進一步分析或動作。

NOTE
與上傳或更新一般資產或二進位檔(如轉譯)相關的所有API呼叫已針對Experience Manager棄用作為Cloud Service部署。 若要上傳二進位檔,請改用直接二進位上傳API

管理內容片段 content-fragments

內容片段是儲存文字、數字和日期的結構化資產。 由於standard資產(例如影像或檔案)有幾項差異,因此處理內容片段會套用一些其他規則。

如需詳細資訊,請參閱 Experience Manager Assets HTTP API🔗中的內容片段支援。

NOTE
請參閱結構化內容傳遞與管理的AEM API,以取得各種可用API的概觀,以及所涉及概念的比較。
也提供內容片段和內容片段模型 OpenAPI

檢查資料模型 data-model

Assets HTTP API主要公開兩個元素:資料夾和標準資產。 此外,也為內容片段中使用的自訂資料模型提供詳細元素。 如需詳細資訊,請參閱內容片段資料模型。 如需進一步資訊,請參閱內容片段資料模型

管理資料夾 folders

資料夾與傳統檔案系統中的目錄類似。 資料夾可包含資產、子資料夾或兩者。 資料夾包含下列元件:

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

屬性

  • name:資料夾名稱(URL路徑的最後一個區段,不含副檔名)。
  • title:以選擇性標題取代資料夾名稱。
NOTE
資料夾或資產的某些屬性會對應至不同的首碼。 jcr:titlejcr:descriptionjcr:languagejcr首碼已取代為dc首碼。 因此,在傳回的JSON中,dc:titledc:description分別包含jcr:titlejcr:description的值。

連結 ​資料夾公開三個連結:

  • self:資料夾本身的連結。
  • parent:父資料夾的連結。
  • thumbnail (選用):資料夾縮圖影像的連結。

管理資產 assets

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

  • 屬性和中繼資料: ​資產的描述性資訊。
  • 二進位檔案: ​原始上傳的檔案。
  • 轉譯: ​多個已設定的轉譯(例如,各種大小的影像、不同的視訊編碼,或從PDF/Adobe InDesign檔案擷取的頁面)。
  • 註解(選擇性): ​使用者提供的註解。

如需內容片段中元素的詳細資訊,請參閱Experience Manager Assets HTTP API中的內容片段支援

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

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

探索可用的API作業 available-features

Assets HTTP API包含下列功能:

NOTE
為了方便閱讀,下列範例會忽略完整的cURL標籤。 表示法與cURL的指令碼包裝函式Resty相關。

擷取資料夾清單 retrieve-a-folder-listing

擷取現有資料夾及其子系圖元(子資料夾或資產)的Siren表示。

要求GET /api/assets/myFolder.json

回應代碼:回應代碼為:

  • 200 — 確定 — 成功。
  • 404 - NOT FOUND — 資料夾不存在或無法存取。
  • 500 — 內部伺服器錯誤 — 如果發生其他錯誤。

回應:傳回的實體類別是資產或資料夾。 包含之圖元的屬性是每個圖元之完整屬性集的子集。 若要取得實體的完整表示法,使用者端應擷取連結所指向的URL內容,該URL具有selfrel

建立資料夾 create-a-folder

在指定路徑建立slingOrderedFolder。 如果提供*而非節點名稱,則servlet會使用引數名稱作為節點名稱。 請求接受下列其中一項:

  • 新資料夾的警報表示法
  • 一組名稱 — 值組,編碼為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 - PRECONDITION FAILED — 如果找不到或無法存取根集合。
  • 500 — 內部伺服器錯誤 — 如果發生其他錯誤。

建立資產 create-an-asset

不支援透過此HTTP API建立資產。 若要建立資產,請使用資產上傳 API。

更新資產二進位檔 update-asset-binary

如需如何更新資產二進位檔的詳細資訊,請參閱資產上傳。 您無法使用HTTP API更新資產二進位檔。

更新資產的中繼資料 update-asset-metadata

此操作會更新資產的中繼資料。 更新dc:名稱空間中的屬性時,會更新對應的jcr:屬性。 不過,API不會同步兩個名稱空間下的屬性。

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

回應代碼:回應代碼為:

  • 200 — 確定 — 如果資產已成功更新。
  • 404 - NOT FOUND — 如果在提供的URI中找不到或無法存取資產。
  • 412 - PRECONDITION FAILED — 如果找不到或無法存取根集合。
  • 500 — 內部伺服器錯誤 — 如果發生其他錯誤。

建立資產轉譯 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 - CREATED — 表示已成功建立轉譯。
  • 404 - NOT FOUND — 如果在提供的URI中找不到或無法存取資產。
  • 412 - PRECONDITION 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 - NOT FOUND — 如果在提供的URI中找不到或無法存取資產。
  • 412 - PRECONDITION FAILED — 如果找不到或無法存取根集合。
  • 500 — 內部伺服器錯誤 — 如果發生其他錯誤。

在資產上新增註解 create-an-asset-comment

引數:註解的訊息本文引數是message,JSON格式的註解資料引數是annotationData

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

回應代碼:回應代碼為:

  • 201 - CREATED — 如果評論已成功建立。
  • 404 - NOT FOUND — 如果在提供的URI中找不到或無法存取資產。
  • 412 - PRECONDITION 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 - CREATED — 若資料夾/資產已複製到不存在的目的地。
  • 204 — 無內容 — 若資料夾/資產已複製到現有目的地。
  • 412 — 先決條件失敗 — 如果缺少請求標頭。
  • 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 - CREATED — 若資料夾/資產已複製到不存在的目的地。
  • 204 — 無內容 — 若資料夾/資產已複製到現有目的地。
  • 412 — 先決條件失敗 — 如果缺少請求標頭。
  • 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 - PRECONDITION FAILED — 如果找不到或無法存取根集合。
  • 500 — 內部伺服器錯誤 — 如果發生其他錯誤。

遵循最佳實務並注意限制 tips-limitations

  • 當達到關閉時間時,透過Assets網頁介面和HTTP API,Assets及其轉譯將無法使用。 如果開啟時間是未來時間,或關閉時間是過去時間,API會傳回404錯誤。

  • Assets HTTP API只會傳回中繼資料的子集。 系統會以硬式編碼撰寫名稱空間,而且只會傳回這些名稱空間。 如需完整的中繼資料,請參閱資產路徑/jcr_content/metadata.json

  • 使用API更新時,資料夾或資產的某些屬性會對應至不同的首碼。 jcr:titlejcr:descriptionjcr:languagejcr首碼已取代為dc首碼。 因此,在傳回的JSON中,dc:titledc:description分別包含jcr:titlejcr:description的值。

探索相關資源

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab