2016-09-22 5 views
0

私はマルチパートフォームリクエストをS3に送信しようとしています。S3 documentationによると、署名ヘッダー情報は、承認ヘッダーまたはクエリ文字列のリクエストに追加できます。私にとって、認証ヘッダーはより簡単に見えます。スウィフトはすぐにS3承認ヘッダー

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

、これは同じように、すべて1つの文字列のようになります。彼らはあるので、Authorization:ヘッダやクエリ文字列のいずれもが、特に「より簡単」であると言うことができる

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

基本的には同じ情報(X-Amz-Expiresの追加と、クエリ文字列に必要な署名コードへの期限切れ論理の追加以外)から構成されていますが、どちらのオプションもここには適用されません。

フォームを使用している場合(アップロードを行うときにのみ行われるので、それはあなたがやっていることを前提としています)、署名情報はフォームパラメータとして提供されます。

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

+0

ありがとうございます、私はドキュメントでかなり迷っています。ページの上部のサンプルとページの下部に表示されるサンプルの違いは何ですか?トップサンプルに有効期限があり、ボトムには有効期限がありません。 – Brosef

+0

クエリ文字列(下)に有効期限が組み込まれている必要があります。有効な値を1秒から7日間の範囲で有効にしたい場合(有効なユーザーにURLを公開したい場合) 。一旦設定されると、有効期限を改ざんすることはできず、署名は無効になります。認可(上)は、署名の直後に使用するメカニズムであると見なされるため、そのメソッドは含まれているタイムスタンプの両側に15分間有効です。どちらのメカニズムもリバースエンジニアリングや改ざんを行うことは計算上不可能です。 –

+0

私は少し混乱しています。私はあなたの答えでは、承認ヘッダーとクエリ文字列は、アップロードには適用されないと言った。あなたが提供したリンクは、どのようにアップロードの両方のスタイルの実装を示していますか? – Brosef

関連する問題