2012-05-01 43 views
1

我一直在尝试使用knox和node js将文件(message.txt)上传到aws s3。上传S3 knox节点js(签名不匹配)

我一直有一个签名不匹配错误。

我的代码在节点JS(上传不工作,所以我只是试图做一个GET):

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/JS节点的签名我会很感激。

回答

2

您可能想尝试AwsSum库。它得到了积极的维护,并且还附带了大量示例和另一个具有更多全功能脚本的回购。

并为您的需求,存在脚本回购为例上传脚本(单独的GitHub项目):

让我知道如果你需要任何帮助或者如果你没事的话。免责声明:我是AwsSum的作者。 :)

+0

我有两个尝试这个: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);'但是我有一个错误“undefined不是函数”任何想法?感谢您的帮助 –

+0

环顾四周后,我做了上传文件的工作,并注意到您在node-awssum的主要示例中使用'var S3 = awssum.load('amazon/s3')加载库。是不同的你上传文件'var S3 = awssum.load('amazon/s3');'(最后的.S3)无论如何,我删除它,它似乎工作!非常感谢 !! –

+0

对不起,这是v0.4.0 API,并有一个新的v0.5.0 API,它反映在README中。由于图书馆是新的,我希望不会有像这样的更改。注意:我昨天发布了v0.5.0到NPM(2012-05-16)! – chilts

0

我刚刚在这个问题上挣扎了几天。假设你在Windows上,似乎这是诺克斯的一个问题。显然这个问题已经解决了,但是解决方案还没有涉及到主要项目。

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

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

希望帮助!

+0

嗨,谢谢你的回答,但我仍然有同样的问题:s –