0

Amazon の s3 rest apiの承認を取得しようとしています。めちゃくちゃ複雑です。

Web サイトの管理ページから単純なGET 要求を作成しようとしているため、Javascript を使用してこれを実行しようとしています。Authorization ヘッダーの署名を作成する手順は次のとおりです。

Signature = Base64( HMAC-SHA1( YourSecretAccessKeyID, UTF-8-Encoding-Of( StringToSign )     ))

私たちの正気を保つために、彼らはいくつかの例を挙げています。

var AWSSecretAccessKey = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY,
    StringToSign = 'GET\n\n\nTue, 27 Mar 2007 19:36:42 +0000\n/johnsmith/photos/puppy.jpg;'

ドキュメントでのこの出力はbWq2s1WEIj+Ydj0vQ697zp+IXMU=. 以下に基づいて、私は得ていZGVjNzNmNTE0MGU4OWQxYTg3NTg0M2MxZDM5NjIyZDI0MGQxZGY0ZQ==ます:

function encode_utf8(s) {
  return unescape(encodeURIComponent(s));
}

SHA1 ハッシュにはcode.google.com のCryptoJS.HmacSHA1 関数を使用しました。私の最終的な署名関数は次のようになります。

var signature = btoa( CryptoJS.HmacSHA1( aws_secret, encode_utf8( StringToSign) ) );

ここで何がうまくいかないのですか?

4

1 に答える 1