Javascript & NodeJSを使用して、署名済みのS3 URLを作成しようとしています。私はthis 仕様を使用しました。Javascriptで符号付きS3 URLを作成する
SignatureDoesNotMatch
The request signature we calculated does not match the signature you provided.
Check your key and signing method.
署名を作成するときに私が間違っているのは何:
https://s3-eu-west-1.amazonaws.com/mybucket/test.txt?AWSAccessKeyId=XXXXXX&Expires=1331290899&Signature=EciGxdQ1uOqgFDCRon4vPqTiCLc%3D
は、しかし、私はそれにアクセスして、次のエラーが表示されます。
var crypto = require('crypto'),
date = 1331290899,
resource = '/myfile.txt',
awskey = "XXXX",
awssecret = "XXXX";
var stringToSign ='GET\n\n\n' + date + '\n\n' + resource;
var sig = encodeURIComponent(crypto.createHmac('sha1', awssecret).update(stringToSign).digest('base64'));
var url = "https://s3-eu-west-1.amazonaws.com/mybucket" +
resource + "?AWSAccessKeyId=" + awskey + "&Expires="+ date +
"&Signature="+ sig
これは、このようなURLが作成されますか?
EDIT - KNOX WITH ATTEMPT
私は今署名したURLを生成するためにノックスを使用しようとしています。私はダウンロードを強制的に要求するヘッダーを追加する必要があります。私は、次のように編集しています
を追加amazonHeaders: 'response-content-disposition:attachment',
client.signedUrl-するhttp://jsfiddle.net/BpGNM/1/
追加options.amazonHeaders + '\n' +
auth.queryStringToSign
へ - 今SIGを作成するためにauth.hmacSha1
に送信されて
http://jsfiddle.net/6b8Tm/メッセージは次のとおりです。
'GET\n\n\n1321374212\nresponse-content-disposition:attachment\n/meshmesh-dev/test/Readme.md'
これで、GET varとしてresponse-content-disposition=attachment
が追加された新しいURLにアクセスしようとしました。しかし、私はまだ上記の同じエラーを受けています。
あなたと同じ問題がありましたら、これは解決されましたか? –