View a markdown version of this page

驗證請求:使用 POST 以瀏覽器為基礎的上傳AWS (簽章第 4 版) - Amazon Simple Storage Service

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

驗證請求:使用 POST 以瀏覽器為基礎的上傳AWS (簽章第 4 版)

Amazon S3 支援 HTTP POST 請求,讓使用者可以直接將內容上傳至 Amazon S3。使用 HTTP POST 上傳內容可簡化上傳,並減少使用者上傳資料以存放在 Amazon S3 中的上傳延遲。本節說明如何驗證 HTTP POST 請求。如需 HTTP POST 請求、如何建立表單、建立 POST 政策以及範例的詳細資訊,請參閱 使用 POST 的瀏覽器型上傳AWS (簽章第 4 版)

若要驗證 HTTP POST 請求,請執行下列動作:

  1. 表單必須包含下列欄位,以提供 Amazon S3 在收到請求時可用來重新計算簽章的簽章和相關資訊:

    元素名稱 說明
    policy

    描述請求中允許內容的 Base64-encoded安全政策。對於簽章計算,此政策是您簽署的字串。Amazon S3 必須取得此政策,才能重新計算簽章。

    x-amz-algorithm

    使用的簽署演算法。對於 AWS Signature 第 4 版,值為 AWS4-HMAC-SHA256

    x-amz-credential

    除了您的存取金鑰 ID 之外,這還提供了您在計算簽章計算的簽署金鑰時使用的範圍資訊。

    這是以下格式的字串:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    例如:

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    對於 Amazon S3,aws-service 字串為 s3。如需 Amazon S3 aws-region字串的清單,請參閱 中的區域和端點AWS 一般參考

    x-amz-date

    這是 ISO8601 格式的日期值。例如 20130728T000000Z

    這是您在建立簽署金鑰時使用的相同日期。這也必須與您在簽署的政策 (x-amz-date) 中提供的值相同。

    x-amz-signature

    (AWS 簽章版本 4) 安全政策的 HMAC-SHA256 雜湊。

    如需簽章選項的詳細資訊,請參閱《》中的將簽章新增至 HTTP 請求AWS 一般參考

  2. POST 政策必須包含下列元素:

    元素名稱 說明
    x-amz-algorithm

    您用來計算簽章的簽署演算法。對於 AWS Signature 第 4 版,值為 AWS4-HMAC-SHA256

    x-amz-credential

    除了您的存取金鑰 ID 之外,這還提供了您在計算簽章計算的簽署金鑰時使用的範圍資訊。

    這是以下格式的字串:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    例如

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    x-amz-date

    ISO8601 格式字串中指定的日期值。例如,「20130728T000000Z」。日期必須與您在建立簽章計算的簽署金鑰時所使用的日期相同。

  3. 對於簽章計算,POST 政策是要簽署的字串。

計算簽章

下圖說明簽章計算程序。

AWS 使用 StringToSign、SigningKey 和 Signature 步驟的簽章計算程序。

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

  2. 將 UTF-8-encoded政策轉換為 Base64。結果是要簽署的字串。

  3. 建立簽章做為要簽署之字串的 HMAC-SHA256 雜湊。您將提供簽署金鑰做為雜湊函數的金鑰。

  4. 使用十六進位編碼來編碼簽章。

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