View a markdown version of this page

使用 POST 的瀏覽器型上傳AWS (簽章第 4 版) - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 POST 的瀏覽器型上傳AWS (簽章第 4 版)

本節討論如何使用 HTTP POST 請求,透過瀏覽器將檔案直接上傳至 Amazon S3。它還包含有關如何使用 AWS Amplify JavaScript 程式庫將瀏覽器型檔案上傳至 Amazon S3 的資訊。

使用 HTTP POST 的瀏覽器型上傳

Amazon S3 支援 HTTP POST 請求,讓使用者可以直接將內容上傳至 Amazon S3。透過使用 POST,最終使用者可以驗證請求,而不必透過保護憑證的安全中介節點來傳遞資料。因此,HTTP POST 有可能減少延遲。

下圖顯示使用 POST 請求的 Amazon S3 上傳。

比較 S3 PUT 工作流程與客戶與伺服器與 S3 的比較,以及直接客戶與 S3 傳輸的 POST 工作流程。
  1. 使用者會從 Web 瀏覽器存取您的頁面。

  2. 您的網頁包含 HTML 表單,其中包含使用者將內容上傳至 Amazon S3 所需的所有必要資訊。

  3. 使用者透過 Web 瀏覽器將內容上傳至 Amazon S3。

傳送瀏覽器型 POST 請求的程序如下:

  1. 建立安全政策,指定限制您要在請求中允許的條件,例如可上傳物件的儲存貯體名稱,以及您要允許建立物件的金鑰名稱字首。

  2. 根據政策建立簽章。對於已驗證的請求,表單必須包含有效的簽章和政策。

  3. 建立使用者可存取的 HTML 表單,以便將物件上傳至 Amazon S3 儲存貯體。

下一節說明如何建立簽章來驗證請求。如需建立表單和安全性政策的相關資訊,請參閱 建立 HTML 表單 (使用 AWS Signature 第 4 版)

計算簽章

對於已驗證的請求,HTML 表單必須包含安全政策和簽章的欄位。

  • 安全政策 (請參閱 POST 政策) 控制請求中允許的項目。

  • 安全政策是簽章計算中的 StringToSign(請參閱 簽署請求簡介)。

StringToSign、Signing Key 和 Signature。

計算簽章
  1. 使用 UTF-8 編碼建立政策。

  2. 將 UTF-8-encoded的政策位元組轉換為 base64。結果是 StringToSign

  3. 建立簽署金鑰。

  4. 使用簽署金鑰來StringToSign使用 HMAC-SHA256 簽署演算法簽署 。

如需建立 HTML 表單、安全政策和範例的詳細資訊,請參閱下列內容: