임포트..!
const multer = require('multer');
const multerS3 = require('multer-s3');
const AWS = require('aws-sdk');
const path = require('path');
AWS.config.update({
accessKeyId: process.env.accessKeyId,
secretAccessKey: process.env.secretAccessKey,
region: 'ap-northeast-2',
});
당연히 AWS 설정을 해줘야죠 ㅎ
이후 이미지 업로드.. 미들웨어로 씁시다..!
const upload = multer({
storage: multerS3({
s3: new AWS.S3(),
bucket: process.env.bucket,
key(req, file, cb) {
cb(null, `original/${Date.now()}${path.basename(file.originalname)}`);
},
acl: 'public-read-write',
}),
limits: { fileSize: 5 * 1024 * 1024 },
});
미들웨어 예시..!
router.post('/', midware, upload.single('image'), async (req, res) =>
당연히 이미지 업로드를 했으면 삭제도 해야죠
s3.deleteObject(
{
Bucket: process.env.bucket,
Key: `original/${beforeImage}`,
},
(err, data) => {
if (err) {
throw err;
}
}
);