[Multer-S3] Multer-S3 Example

설정·2021년 1월 14일
0
post-thumbnail

Multer-S3 Install

  1. multer
  2. multer-s3
  3. aws-sdk

AWS 액세스 키 발급

액세스 키는 절대 타인에게 노출 금지

  1. 내 결제 대시보드
  2. 액세스 키
  3. 새 액세스 키 만들기

Multer-S3 Example Code

require('dotenv').config()
const express = require('express')
const app = express();
const PORT = 8000;
const multer = require('multer')
const multerS3 = require('multer-s3')
const AWS = require('aws-sdk')
// const s3 = require('./s3')

const s3 = new AWS.S3({
    accessKeyId: process.env.KEY_ID,
    secretAccessKey: process.env.ID,
    region: 'ap-northeast-2'
});

const upload = multer({
    storage: multerS3({
        s3: s3,
        bucket: 'multertest2',
        key: (req, file, cb) => {
            cb(null, file.originalname)
        }
    })
})

app.get('/', (req, res) => {
    res.send('야야야야양')
})

app.post('/upload', upload.single('img'), (req, res) => {
    console.log('파일 업로드 됨')
    console.log(req.file)
    console.log('파일경로 : ',req.file.location)
    res.send(req.file.location);
})

app.listen(PORT, () => {
    console.log(`listen on ${PORT}`)
})

PostMan Test

  • 테스트 중 데이터가 전송이 안되었는데 알고보니 POST요청이 아닌 GET요청으로 하고 있었다.
    다음부터 요청에 대한 메소드를 주의하고 보자
  • 테스트 중 AWS 액세스 오류가 발생하였다.
    이 점은 AWS 계정 또는 S3의 권한 설정문제로 버킷의 권한 부분을 설정하면 된다.

Result

  • AWS의 S3 버킷에 올라간 것 확인
  • Local에는 따로 저장을 하지 않았다.

느낀것

  • exports에 대한 부분을 공부하자
    이 부분때문에 시간이 오래 걸렸다.
  • 공식문서를 참고하자.

0개의 댓글