2.1.1 • Published 8 years ago
aws-sigv4 v2.1.1
aws-sigv4
A dependency-free, test suite-compliant, AWS Signature Version 4 library in ES2017
Example - ES2017 (Node 7.6+)
const sigv4 = require('aws-sigv4');
const signature = await sigv4.sign(
secretAccessKey,
requestDate.slice(0, 8),
'us-east-1',
'host',
stringToSign
);
console.log(signature);
Example - ES2016 (Node 4, 6, <= 7.5)
const sigv4 = require('aws-sigv4');
sigv4.sign(
secretAccessKey,
requestDate.slice(0, 8),
'us-east-1',
'host',
stringToSign
)
.then(signature => console.log(signature));
// Or, more specifically for S3:
const date = sigv4
.formatDateTime(new Date())
.slice(0, 8);
const credential = `${process.env.AWS_ACCESS_KEY_ID}/${date}/${process.env.AWS_REGION}/s3/aws4_request`;
const policy = new Buffer(
JSON.stringify({
expiration: new Date(Date.now() + 15 * 60000).toISOString(), // 15 minutes from now
conditions: [
{bucket: 'my-bucket-name'},
{key: 'my-s3-key.mov'},
{acl: 'private'},
['starts-with', '$Content-Type', 'video/'],
['content-length-range', 0, 10 * 1024 * 1024],
{'x-amz-credential': credential},
{'x-amz-algorithm': 'AWS4-HMAC-SHA256'},
{'x-amz-date': date + 'T000000Z'}
]
})
)
.toString('base64');
sigv4.sign(
process.env.AWS_SECRET_ACCESS_KEY,
date,
process.env.AWS_REGION,
's3',
policy
)
.then(signature => console.log(sigature));
See Authenticating Requests in Browser-Based Uploads Using POST (AWS Signature Version 4) as the primary use case.
2.1.1
8 years ago
2.1.0
8 years ago
2.0.1
8 years ago
2.0.0
8 years ago
2.0.0-0
9 years ago
1.8.0
9 years ago
1.7.0
9 years ago
1.6.2
9 years ago
1.6.1
9 years ago
1.6.0
9 years ago
1.5.1
9 years ago
1.5.0
9 years ago
1.4.3
9 years ago
1.4.2
10 years ago
1.4.1
10 years ago
1.4.0
10 years ago
1.1.4
10 years ago
1.1.3
10 years ago
1.1.2
10 years ago
1.1.1
10 years ago
1.1.0
10 years ago
1.0.2
10 years ago
1.0.1
10 years ago
1.0.0
10 years ago