【问题标题】:Upload S3 knox node js (signature doesnt match)上传 S3 knox 节点 js(签名不匹配)
【发布时间】:2012-05-01 21:37:30
【问题描述】:

我已经尝试了很多天,使用knox 和节点 js 将文件 (message.txt) 上传到 aws s3。

我总是遇到签名不匹配错误。

我在节点 js 中的代码(上传无法正常工作,所以我只是尝试获取):

var client = knox.createClient({
    key: 'myAWSkey'
  , secret: 'mySecretKey'
  , bucket: 'mybucket'
  , endpoint: 'mybucket.s3-eu-west-1.amazonaws.com'
});
client.get('/').on('response', function(res){
  console.log(res.statusCode);
  console.log(res.headers);
  res.setEncoding('utf8');
  res.on('data', function(chunk){
    console.log(chunk);
  });
}).end();

我还尝试在亚马逊上将test signature 与许多不同的方法进行比较:html and python version

没有什么对我有用,我可能在这个过程中有点迷失...... 如果有人可以给我一些大行来指导我和/或一个脚本以在 javascript/node js 中正确生成签名,我将非常感激。

【问题讨论】:

    标签: javascript node.js amazon-s3 knox-amazon-s3-client


    【解决方案1】:

    您可能想试试 AwsSum 库。它得到了积极的维护,还附带了大量示例和另一个包含功能更全面的脚本的 repo。

    并且根据您的需要,在脚本存储库(单独的 GitHub 项目)中有一个示例上传脚本:

    如果您需要任何帮助或一切正常,请告诉我。免责声明:我是 AwsSum 的作者。 :)

    【讨论】:

    • 我已经尝试过这个:var awssum = require('awssum'); var amazon = awssum.load('amazon/amazon'); var S3 = awssum.load('amazon/s3').S3; var s3 = new S3('my access key', 'my secret key', 'my account number', amazon.EU_WEST_1); 但我有一个错误“未定义不是函数”有什么想法吗?感谢您的帮助
    • 环顾四周后,我制作了您的上传文件,我注意到在您的 node-awssum 主要示例中,您使用 var S3 = awssum.load('amazon/s3').S3; 加载库,这与您上传文件 var S3 = awssum.load('amazon/s3'); 不同(. S3 最后)无论如何我删除了它,它似乎工作!非常感谢!!
    • 抱歉,那是 v0.4.0 API,并且有一个新的 v0.5.0 API 反映在自述文件中。由于图书馆是新的,我希望不会再有这样的变化。注意:我昨天(2012-05-16)在 NPM 上发布了 v0.5.0!
    【解决方案2】:

    我只是在这个问题上苦苦挣扎了几天。假设您使用的是 Windows,这似乎是 Knox 的问题。显然问题已经解决了,但是解决方案还没有拉入主项目。

    看到这个帖子:https://github.com/LearnBoost/knox/issues/56

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

    希望有帮助!

    【讨论】:

    • 您好,感谢您的回答,但我仍然遇到同样的问题:s
    猜你喜欢
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多