user3105927
user3105927

Reputation:

Fetching signed URL from AWS S3 on my Node Server

Solved:

I want to get a signed URL from my amazon S3 server. I am new to AWS. where do i set my secret-key and access_id_key so that S3 identifies request from my server.

var express=require('express');
var app=express();


var AWS = require('aws-sdk')
, s3 = new AWS.S3()
, params = {Bucket: 'my-bucket', Key: 'path/to/key', Expiration: 20}

s3.getSignedUrl('getObject', params, function (err, url) {
console.log('Signed URL: ' + url)
})

app.listen(8000)

Upvotes: 9

Views: 16437

Answers (2)

Nathan
Nathan

Reputation: 111

You can also set the credentials for each bucket if you are working with multiple buckets, you just need to pass the credentials into the constructor of the S3 object, like so:

var AWS = require('aws-sdk');
var credentials = {
  accessKeyId: AWS_CONSTANTS.S3_KEY,
  secretAccessKey: AWS_CONSTANTS.S3_SECRET,
  region: AWS_CONSTANTS.S3_REGION
};
var s3 = new AWS.S3(credentials);
var params = {Bucket:'bucket-name', Key: 'key-name', Expires: 20};
s3.getSignedUrl('getObject', params, function (err, url) {
  console.log('Signed URL: ' + url);
});

Upvotes: 7

user3105927
user3105927

Reputation:

Later i solved my issue. This was pretty helpful http://aws.amazon.com/sdkfornodejs/ Moreover you can hardcode your credentials also as

var express=require("express");
var app=express();

var AWS = require('aws-sdk')
, s3 = new AWS.S3()
, params = {Bucket:'your-bucket-name on s3', Key: 'key-name-on s3 you want to store under', Expires: 20}

AWS.config.update({accessKeyId: 'Your-Access-Key-Id', secretAccessKey:     
'Your-secret-key'});

AWS.config.region = 'us-west-2';


s3.getSignedUrl('getObject', params, function (err, url) {
console.log('Signed URL: ' + url);
});

app.listen(8000);

Upvotes: 5

Related Questions