1

私がやろうとしていること: 最終的に: ブラウザ拡張機能 (Safari、Chrome) から AWS Kinesis ストリームにデータを入力したいと考えています。署名プロセス (v4) を使用してリクエストを AWS に送信する必要があります。これには、ヘッダーの設定とそれらの暗号化 (aws 秘密鍵を使用して遠隔サーバー上で) が含まれ、最終的にそれらをリクエストに結合します。

Amazon はヘッダー "Host" を明示的に定義するよう要求していますが、Javascript はそれを設定することを厳密に禁止しています (正当な理由により、他の多くのものも)。

私は何かが欠けているに違いありません—どうすればこれを行うことができますか?

ソース: http://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html - 例は Python ですが、サーバー側で Host ヘッダーを使用する方法を示しています

注: 現在 POST を使用しています。GET およびクエリ文字列を説明する例のコメントには、「ホスト」も記載されています。これは、リクエストのヘッダーとして存在する必要があります。

また、同様のセットアップを使用して、クライアントから直接 S3 バケットにファイルをアップロードすることができました。自動化プロセスはわずかに異なります (「ホスト」の要件はありません)。

4

1 に答える 1

1

ヘッダーは、Host:実行時に JS XHR 自体によって入力され、指定された URL から解析されますcurl

curl -v -X POST http://example.org/foo

...自動的にヘッダーを追加しHost: example.orgます...

canonical_headersAWS の場合は、リンクされた例で説明されているように、署名用のリストに追加する必要があります (すべて小文字で)。ただし、その部分は実際に接続を確立することとは関係ありません。

于 2015-02-04T18:32:59.957 に答える