From d525344670731be9b99e5b7c4e9d7afacf08db8b Mon Sep 17 00:00:00 2001 From: Sean Fridman Date: Mon, 14 Dec 2015 21:19:14 +0100 Subject: Finally smash S3 upload crash bug --- app/node_modules/okservices/oks3/index.js | 35 +++++++++++++++++++------------ 1 file changed, 22 insertions(+), 13 deletions(-) (limited to 'app/node_modules/okservices/oks3/index.js') diff --git a/app/node_modules/okservices/oks3/index.js b/app/node_modules/okservices/oks3/index.js index bd0915e..d556c20 100644 --- a/app/node_modules/okservices/oks3/index.js +++ b/app/node_modules/okservices/oks3/index.js @@ -1,6 +1,12 @@ var skipper = require('skipper'); var skipperS3 = require('skipper-s3') +// Hack to prevent this god-forsaken module from crashing our shit +var d = require('domain').create() +d.on('error', function (err) { + console.error('Stupid error in S3 upload. Image upload probably prematurely canceled') +}) + function OKS3(options) { if (!(this instanceof OKS3)) return new OKS3(options); options = options || {}; @@ -17,19 +23,22 @@ function OKS3(options) { router.post('/', function(req, res) { // req should have a method `file` on it which is // provided by skipper. Use that to do AWS stuff - req.file('image').upload({ - adapter: skipperS3, - key: options.s3.key, - secret: options.s3.secret, - bucket: options.s3.bucket, - dirname: options.s3.dirname, - maxBytes: options.s3.maxbytes, - headers: { - 'x-amz-acl': 'public-read' - } - }, function (err, uploadedFiles) { - res.json(uploadedFiles); - }); + d.run(function () { + req.file('image').upload({ + adapter: skipperS3, + key: options.s3.key, + secret: options.s3.secret, + bucket: options.s3.bucket, + dirname: options.s3.dirname, + maxBytes: options.s3.maxbytes, + headers: { + 'x-amz-acl': 'public-read' + } + }, function (err, uploadedFiles) { + if (err) res.status(500).send(err) + res.json(uploadedFiles); + }); + }) }); this._middleware = router; -- cgit v1.2.3-70-g09d2