-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy paths3-resolver.js
More file actions
33 lines (27 loc) · 744 Bytes
/
s3-resolver.js
File metadata and controls
33 lines (27 loc) · 744 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var S3 = require('aws-sdk/clients/s3');
module.exports = {
order: 1,
canRead: /^s3:/i,
read: function(file, callback) {
var params;
if (this.bucket) {
var parts = file.url.match(/^s3:\/\/(.+)$/);
params = { Bucket: this.bucket, Key: parts[1] };
} else {
var parts = file.url.match(/^s3:\/\/(.+?)\/(.+)$/);
params = { Bucket: parts[1], Key: parts[2] };
}
if (!(params.Bucket && params.Key)) {
callback(new Error("Malformed params object: " + file.url));
} else {
var s3 = new S3();
s3.getObject(params, function(err, data) {
if (err) {
callback(err);
} else {
callback(null, data.Body.toString());
}
});
}
}
};