Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 1.5 KB

SDK 를 사용하여 이미지 업로드.md

File metadata and controls

43 lines (33 loc) · 1.5 KB

< 뒤로가기

SDK 를 사용하여 이미지 업로드

  • 작성자 : @unchaptered
  • 작성일자 : 2022-08-18

해당 기능 구현 간에 트러블 Multipart form-data 와 ExpressMulter, Multer.S3, AWS-SDK 호환성 문제 를 맞이하였고 해결하였습니다.

const multer = require('multer');
const multerS3 = require('multer-s3');
const aws = require('aws-sdk');
const awsConfig = require('./config/s3.config.json');

const s3Bucket = new aws.S3({
    accessKeyId: awsConfig.accessKeyId,
    secretAccessKey: awsConfig.secretAccessKey,
    region: awsConfig.region,
});

// 에러 1 : Access Denied
// 에러 1 해결 : IAM 생성 후 입력

// 에러 2 : AccessControlListNotSupported: The bucket does not allow ACLs
// 에러 2 해결 : https://www.inflearn.com/questions/374465

const s3Middleware = multer({
    storage: multerS3({
        s3: s3Bucket,
        bucket: '버킷-이름',
        acl: 'public-read',
        contentType: multerS3.AUTO_CONTENT_TYPE,
        // key: function (req, file, cb) {
        //     cb(null, `${Date.now()}_${file.originalname}`);
        // },
    }),
});

module.exports = s3Middleware;