- 작성자 : @unchaptered
- 작성일자 :
2022-08-18
해당 기능 구현 간에 트러블
Multipart form-data 와 Express 과 Multer, 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;