javascriptnode.jsamazon-s3knox-amazon-s3-client

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.


Solution

  • 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. :)