summaryrefslogtreecommitdiff
path: root/handler.js
diff options
context:
space:
mode:
authorJoe Robinson <joe.robinson@masabi.com>2018-01-18 15:06:40 +0000
committerJoe Robinson <joe.robinson@masabi.com>2018-01-18 15:06:40 +0000
commitc833eab89e873c15b60d2dae04561e6d3af974f7 (patch)
tree9dc0321ad7d0bb7a0981b3e61206c9dadb7a97e6 /handler.js
Test repo
Diffstat (limited to 'handler.js')
-rw-r--r--handler.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/handler.js b/handler.js
new file mode 100644
index 0000000..4f5c9cb
--- /dev/null
+++ b/handler.js
@@ -0,0 +1,26 @@
+'use strict';
+
+const fetch = require('node-fetch');
+const AWS = require('aws-sdk'); // eslint-disable-line import/no-extraneous-dependencies
+
+const s3 = new AWS.S3();
+
+module.exports.save = (event, context, callback) => {
+ fetch(event.image_url)
+ .then((response) => {
+ if (response.ok) {
+ return response;
+ }
+ return Promise.reject(new Error(
+ `Failed to fetch ${response.url}: ${response.status} ${response.statusText}`));
+ })
+ .then(response => response.buffer())
+ .then(buffer => (
+ s3.putObject({
+ Bucket: process.env.BUCKET,
+ Key: event.key,
+ Body: buffer,
+ }).promise()
+ ))
+ .then(v => callback(null, v), callback);
+};