2016-09-22 118 views
0

我試圖向S3發送多部分表單請求,並根據S3 documentation我可以將授權標頭中或查詢字符串中的簽名信息添加到請求中。對我來說,授權標題看起來更直接。S3 swift中的授權標頭

Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east 1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7

在雨燕,就這僅僅是全部一個字符串,如:

request.setValue("AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east 1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7", forHTTPHeaderField: "Authorization") 

回答

0

無論是Authorization:頭,也沒有查詢字符串,可以說是特別「更加直白,」因爲它們是基本上是由相同的信息構成的(除了添加X-Amz-Expires以及必要的添加到簽名代碼的過期邏輯,如查詢字符串中所要求的)...但這兩種選項都不適用於此。

當使用表單時 - 只在上傳時執行,因此我假定您正在執行的操作 - 簽名信息以表單參數的形式提供。

http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html

+0

謝謝,我已經非常的文檔中丟失。頁面頂部的樣本與頁面底部的樣本之間有什麼區別?我注意到頂部樣本有一個到期,而底部沒有。 – Brosef

+0

查詢字符串(底部)需要過期合併到其中,有用的情況下,如果你想公開URL(授權用戶),並希望它在一段特定時間內有效,有效值範圍從1秒到7天。一旦設置,過期不能被篡改,或者簽名失效。授權(頂部)被假定爲您在簽名後立即使用的機制,因此該方法在包含的時間戳的任一側都有效15分鐘。這兩種機制在計算上都不可行,以反向工程或篡改。 –

+0

我有點困惑。我認爲在你的回答中,你說授權標題和查詢字符串不適用於上傳。您提供的鏈接如何顯示上傳兩種樣式的實施情況? – Brosef