Upload S3 knox node js (signature doesnt match)

I've been trying for many days now to upload a file (message.txt) to aws s3 using knox and node js.

I keep having a signature doesnt match error.

my code in node js (upload was not working so i'm just trying to do a 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();

I also tried the amazon to compare the test signature with many different methods like this one : html and python version

Nothing worked for me, I'm probably a bit lost in the process... If someone could give me some big lines to guide me and/or a script to generate correctly a signature in javascript/node js I would be very grateful.

You might want to try the AwsSum library. It's actively maintained and also comes with a load of examples and another repo with more fully featured scripts.

And for your needs, there is an example upload script in the scripts repo (separate GitHub project):

Let me know if you need any help or if you get on ok. Disclaimer: I'm the author of AwsSum. :)

I just struggled with this issue for a few days. Assuming you're on Windows, it seems like it's an issue on Knox's end. Apparently the problem has been solved, but the solution has not not pulled into the main project yet.

See this thread: https://github.com/LearnBoost/knox/issues/56

My workaround was to just remove the knox library and clone this repository into my node_modules folder: https://github.com/domenic/knox.git

Hope that helps!