Show Menu
主題×

Assets as a Cloud Service APIs

資產上傳

Experience Manager雲端服務提供了將資產上傳至儲存庫的新方式——將二進位上傳至二進位雲端儲存空間。 本節提供其技術概觀。

直接二進位上傳概觀

上傳二進位檔的高階演算法是:
  1. 提交HTTP要求,通知AEM上傳新二進位檔的意圖。
  2. 將二進位內容發佈到由啟動請求提供的一個或多個URI。
  3. 提交HTTP請求,通知伺服器已成功上傳二進位檔的內容。
與舊版AEM相較的重要差異包括:
  • 二進位檔案不會經過AEM,現在只需將上傳程式與為部署設定的二進位雲端儲存空間進行協調
  • 二進位雲端儲存空間由內容傳送網路(CDN,Edge Network)作為前端,可讓上傳端點更接近用戶端,進而協助改善上傳效能和使用者體驗,尤其是針對分散式團隊上傳資產
此方法應提供更具擴充性和效能的資產上傳處理。
! 若要檢閱實作此方法的用戶端程式碼,請參閱開放原始碼 aem-upload程式庫

開始上傳

第一步是將HTTP POST請求提交到資產應建立或更新的資料夾; 包含選擇 .initiateUpload.json 器以指出請求是開始二進位上傳。 例如,資產應建立所在資料夾的路徑為 /assets/folder :
POST https://[aem_server]/content/dam/assets/folder.initiateUpload.json

請求主體的內容類型應為表單資 application/x-www-form-urlencoded 料,包含下列欄位:
  • (string) fileName : 必要. 資產在例項中顯示的名稱。
  • (number) fileSize : 必要. 要上載的二進位檔案的總長度(以位元組為單位)。
只要每個二進位檔包含必要欄位,單一請求就可用來啟動多個二進位檔的上傳。 如果成功,請求會以狀態碼 201 和包含下列格式JSON資料的內文回應:
{
    "completeURI": "(string)",
    "folderPath": (string)",
    "files": [
        {
            "fileName": "(string)",
            "mimeType": "(string)",
            "uploadToken": "(string)",
            "uploadURIs": [
                "(string)"
            ]
        }
    ]
}

  • completeURI (字串): 當二進位檔完成上傳時叫用此URI。 URI可以是絕對或相對URI,客戶端也可以處理它們。 即,值可以是或查 "https://author.acme.com/content/dam.completeUpload.json" 看完 "/content/dam.completeUpload.json" 上載
  • folderPath (字串): 上傳二進位檔的資料夾完整路徑。
  • (files) (陣列): 元素的清單,其長度和順序將與啟動請求中提供的二進位資訊清單的長度和順序相匹配。
  • fileName (字串): 相應二進位檔案的名稱,如啟動請求中提供的。 此值應包含在完整請求中。
  • mimeType (字串): 相應二進位的MIME類型,如initiate請求中提供。 此值應包含在完整請求中。
  • uploadToken (字串): 對應二進位碼的上傳Token。 此值應包含在完整請求中。
  • uploadURIs (陣列): 字串的清單,其值為應上傳二進位檔內容的完整URI(請參 閱上傳二進位 )。
  • minPartSize (數字): 如果有多個URI,則可提供給任何一個uploadURI的資料的最小長度(以位元組為單位)。
  • maxPartSize (數字): 如果有多個URI,則可提供給上載URI中任何一個的資料的最大長度(以位元組為單位)。

上傳二進位檔

啟動上載的輸出將包含一個或多個上載URI值。 如果提供多個URI,則客戶有責任將二進位檔案「拆分」為多個部件,並按順序將每個部件POST分配給每個URI。 必須使用所有URI,且每個部件必須大於最小大小,小於啟動響應中指定的最大大小。 這些要求將由CDN邊緣節點負責,以加速二進位檔案的上傳。
實現此目的的一個潛在方法是,根據API提供的上傳URI數量計算零件大小。 範例假設二進位檔的總大小為20,000位元組,而上傳URI的數目為2:
  • 通過總大小除以URI數計算零件大小: 20,000 / 2 = 10,000
  • 上傳URI清單中第一個URI的二進位元組範圍0-9,999
  • 上傳URI清單中二進位元組到第二個URI的POST位元組範圍10,000 - 19,999
如果成功,伺服器會以狀態碼回應每個 201 要求。

完整上傳

在上傳二進位檔案的所有部分後,將HTTP POST要求提交至啟動資料所提供的完整URI。 請求主體的內容類型應為表單資 application/x-www-form-urlencoded 料,包含下列欄位。
欄位
類型
必要與否
說明
fileName
字串
必要
資產名稱,如啟動資料所提供。
mimeType
字串
必要
二進位檔的HTTP內容類型,如啟動資料所提供。
uploadToken
字串
必要
上傳二進位碼的Token,如啟動資料所提供。
createVersion
布林值 (Boolean)
可選
如果 True 資產已具有指定名稱,Experience Manager會建立新版本的資產。
versionLabel
字串
可選
如果建立了新版本,則與資產新版本相關聯的標籤。
versionComment
字串
可選
如果已建立新版本,則與該版本關聯的注釋。
replace
布林值 (Boolean)
可選
如果 True 資產已具有指定名稱,Experience Manager會刪除資產,然後重新建立資產。
!
如果資產已存在且未指 createVersion 定或 replace 未指定,則Experience Manager會使用新二進位檔更新資產的目前版本。
如同啟動程式,完整的請求資料可能包含多個檔案的資訊。
上傳二進位檔的程式,直到呼叫檔案的完整URL為止。 即使完整上傳檔案的二進位檔,在上傳程式完成前,執行個體不會處理資產。
如果成功,伺服器會以狀態代碼 200 進行響應。

開放原始碼上傳程式庫

若要進一步瞭解上傳演算法或建立您自己的上傳指令碼和工具,Adobe提供開放原始碼程式庫和工具作為起點:

不建議使用的資產上傳API

對於Adobe Experience Manager做為雲端服務,僅支援新的上傳API。 Adobe Experience Manager 6.5的API已過時。 與上傳或更新資產或轉譯(任何二進位上傳)相關的方法在下列API中已過時:

資產處理和後處理工作流程

在Experience Manager中,資產處理是以使用資產微服務 的「處理設定檔 」設 定為基礎 。 處理程式不需要開發人員擴充功能。
若是後處理工作流程設定,請使用具有自訂步驟擴充功能的標準工作流程。

後處理工作流程中的工作流程步驟支援

從舊版Experience Manager升級至Experience Manager的雲端服務客戶,可使用資產微服務處理資產。 雲端原生資產微服務的設定和使用更簡單。 不支援舊版 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