Upload Image using node to s3
var express = require('express');
var router = express.Router();
var multer = require('multer');
var Upload = require('s3-uploader');
var config = require('../config')
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
console.log("file.................", file);
callback(null, Date.now() + '-' + file.originalname);
}
});
var client = new Upload('spocast.weavers.com', {
aws: {
path: 'images/',
region: 'ap-south-1',
acl: 'public-read',
accessKeyId: config.S3_Upload.ACCESS_KEY,
secretAccessKey: config.S3_Upload.SECRET_KEY,
},
cleanup: {
versions: true,
original: true
},
original: {
awsImageAcl: 'private'
},
versions: [{
maxHeight: 1040,
maxWidth: 1040,
format: 'jpg',
suffix: '-large',
quality: 80,
awsImageExpires: 31536000,
awsImageMaxAge: 31536000
}]
});
var upload = multer({ storage: storage, dest: './uploads' });
router.post('/uploadImage', upload.single('displayImage'), function (req, res) {
client.upload(req.file.path, {}, function (err, versions, meta) {
var imgUrl = [];
if (err) {
res.json({ status: 501, error: err });
}
else {
if (versions) {
versions.forEach(function (image) {
imgUrl.push(image.url);
console.log(image.width, image.height, image.url);
});
var imageUrl = { 'imgUrl': imgUrl };
res.json({ status: 200, imageUrl });
}
}
// res.status(200).end()
});
});
module.exports = router;