

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

# 使用 POST 的瀏覽器型上傳AWS （簽章第 4 版）
<a name="sigv4-UsingHTTPPOST"></a>

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

**Topics**
+ [POST 物件](RESTObjectPOST.md)
+ [POST 物件還原](RESTObjectPOSTrestore.md)
+ [使用 HTTP POST 的瀏覽器型上傳](#sigv4-UsingHTTPPOST-how-to)
+ [計算簽章](#sigv4-post-signature-calc)
+ [建立 HTML 表單 （使用 AWS Signature 第 4 版）](sigv4-HTTPPOSTForms.md)
+ [POST 政策](sigv4-HTTPPOSTConstructPolicy.md)
+ [範例：使用 HTTP POST 以瀏覽器為基礎的上傳 （使用 AWS Signature 第 4 版）](sigv4-post-example.md)
+ [使用 AWS Amplify 程式庫將瀏覽器型上傳到 Amazon S3](browser-based-uploads-aws-amplify.md)

## 使用 HTTP POST 的瀏覽器型上傳
<a name="sigv4-UsingHTTPPOST-how-to"></a>

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

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

![比較 S3 PUT 工作流程與客戶與伺服器與 S3 的比較，以及直接客戶與 S3 傳輸的 POST 工作流程。](https://docs.aws.amazon.com/zh_tw/AmazonS3/latest/developerguide/images/s3_post.png)


1.  使用者會從 Web 瀏覽器存取您的頁面。

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

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

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

 

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

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

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

下一節說明如何建立簽章來驗證請求。如需建立表單和安全性政策的相關資訊，請參閱 [建立 HTML 表單 （使用 AWS Signature 第 4 版）](sigv4-HTTPPOSTForms.md)。

## 計算簽章
<a name="sigv4-post-signature-calc"></a>

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

 
+ 安全政策 （請參閱 [POST 政策](sigv4-HTTPPOSTConstructPolicy.md)) 控制請求中允許的項目。
+ 安全政策是簽章計算中的 `StringToSign`（請參閱 [簽署請求簡介](sig-v4-authenticating-requests.md#signing-request-intro))。

 

![StringToSign、Signing Key 和 Signature。](https://docs.aws.amazon.com/zh_tw/AmazonS3/latest/developerguide/images/sigV4-post.png)






**計算簽章**

1. 使用 UTF-8 編碼建立政策。

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

1. 建立簽署金鑰。

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

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


+ [建立 HTML 表單 （使用 AWS Signature 第 4 版）](sigv4-HTTPPOSTForms.md)
+ [POST 政策](sigv4-HTTPPOSTConstructPolicy.md)
+ [範例：使用 HTTP POST 以瀏覽器為基礎的上傳 （使用 AWS Signature 第 4 版）](sigv4-post-example.md)

