Skip to content

Instantly share code, notes, and snippets.

@hungdev
Created May 20, 2019 15:11
Show Gist options
  • Save hungdev/83199bf5247b50bbf482fb7533b6bfd0 to your computer and use it in GitHub Desktop.
Save hungdev/83199bf5247b50bbf482fb7533b6bfd0 to your computer and use it in GitHub Desktop.
aws upload.md
var router = require('express').Router()
const multer = require('multer');
const fs = require("fs");
var path = require('path');
const uuidv4 = require('uuid/v4');
const rootPath = require('../server')
const upload = require('./multerConfig');
const AWS = require('aws-sdk');

const s3 = new AWS.S3({
  accessKeyId: process.env.AWS_ACCESS_KEY_ID,
  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
});

const uploadHandler = (req, res, next) => {
  upload(req, res, async (err) => {
    if (err) {
      return res.status(415).send({
        name: 'arrFiles', message: 'The file is incorrect format!'
      })
    }

    let tasks = []

    for (let i in req.files) {
      // let pathExtName = path.extname(req.files[i].originalname).toLowerCase()
      let pathFile = path.join(rootPath.rootPath, req.files[i].path)
      const up = fs.readFileSync(pathFile);
      const params = {
        Bucket: 'hsbc-poc-input/cee',
        Key: req.files[i].originalname,
        Body: up
      };
      tasks.push(new Promise((resolve, reject) => {
        s3.upload(params, function (s3Err, data) {
          if (s3Err) reject(s3Err)
          console.log(`File uploaded successfully at ${data.Location}`)
          resolve(data)
        });
      }))
    }
    await Promise.all(tasks)
    return res.json({
      result: "ok",
      data: {
        message: "Upload successfully!"
      }
    });



  })

};

module.exports = uploadHandler;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment