Node.js Amazon S3 – 下载失败,出现SignatureDoesNotMatch错误

这是我用来下载文件的代码

var S3_KEY = 'xxxxxx'; var S3_SECRET = 'xxxxxx'; var S3_BUCKET = 'xxxxxx'; var s3Client = require('knox').createClient({ "key": S3_KEY, "secret": S3_SECRET, "bucket": S3_BUCKET }); // Pull some stuff down s3Client.get('myFile.zip').on( 'response', function(res){ console.log( "\n" + res.statusCode ); console.log( "\n" + res.headers + "\n" ); res.setEncoding( 'utf8' ); res.on('data', function( chunk ) { console.log( chunk ); }); }).end(); 

SignatureDoesNotMatch代码出现403错误。 我究竟做错了什么?

你可能想看看AwsSum库。 它function齐全,积极维护:

在node-awssum-scripts repo中有一个从S3下载的例子,你可能会发现它很有用:

如果您需要任何帮助,请给我留言。 免责声明:我是AwsSum的作者。 🙂

这似乎是诺克斯的一个问题。 显然这个问题已经解决了,但是解决办法还没有拉入主体工程。

看到这个线程: https : //github.com/LearnBoost/knox/issues/56

我的解决方法是只删除knox库,并将此库克隆到我的node_modules文件夹中: https : //github.com/domenic/knox.git