2012-05-01 61 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 –