[Express] S3에 이미지 업로드

S3에 이미지를 업로드합니다.
이 글은 업로드만 하고 읽지 않습니다.
routes/images.js
require('dotenv').config();
const fs = require('fs');
const aws = require('aws-sdk');
const s3 = new aws.S3({  // dotenvで読み込む
  accessKeyId: process.env.accessKeyId,
  secretAccessKey: process.env.secretAccessKey,
  region: process.env.region,
});

const multer  = require('multer');
const multerS3 = require('multer-s3');

// multer-s3の公式を参照(下記)
const upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: 'node-image-app2',
    metadata: function (req, file, cb) {
      cb(null, {fieldName: file.fieldname});
    },
    key: function (req, file, cb) {
      cb(null, Date.now().toString())
    }
  })
});

// Create images
// upload(...)で画像を登録。multer公式参照(下記)
router.post('/images/upload', upload.single('image'), (req, res, next) => {
  if (req.file) {
    console.log('Image uploaded!');
    res.redirect('/images');
  }
  else {
    console.log('Image can not uploaded!')
    res.render('image.ejs');
  }
})
accessKeyId='foo'
secretAccessKey='foo'
region='foo'
.env 파일을 열어 주십시오.를 선택해야 합니다.
참고 자료
multer
multer-s3

좋은 웹페이지 즐겨찾기