S3란?
Amazon Simple Storage Service(S3)는 웹 상의 어디서나 언제든지 원하는 양의 데이터를 저장하고 검색할 수 있는 간편한 웹 서비스 인터페이스를 제공합니다.
javascript사용 nodejs express사용
untils file에서 s3.js를 만들어 주었습니다.
const AWS = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3');
const { v4 } = require('uuid');
const uuid = v4();
const s3 = new AWS.S3({
region: process.env.REGION, //버켓의 생성 지역
accessKeyId: process.env.ACCESSKEY, // 당신의 accesskey
secretAccessKey: process.env.SERCETACCESSKEY, //당신의 sercetaccesskey
});
let upload = multer({
storage: multerS3({
s3: s3,
bucket: process.env.BUCKET, //당신의 버켓이름
contentType: multerS3.AUTO_CONTENT_TYPE,
acl: 'public-read',
key: (req, file, cb) => {
cb(null, `${Date.now()}_${uuid}`);
},
}),
});
module.exports = { upload };
미들웨어에서 s3에 upload하는 방식입니다.
const express = require('express');
const checkLogInToken = require('../utils/auth');
const reviewController = require('../controllers/reviewController');
const { upload } = require('../utils/s3');
const router = express.Router();
router.get('', reviewController.getReviewByProductId);
router.post(
'',
checkLogInToken,
upload.single('reviewImg'), //한개의 사진만 올릴때 single사용
reviewController.createReview
);
// 이후 서비스단에서 하는 작업입니다.
const userId = req.user.id;
const { content, title, productId } = req.body;
const url = req.file.location;
이렇게 되면 항상하던데로 DAO단에서 게시물을 생성하고 생성된 url을 저장하면 됩니다.
'etc' 카테고리의 다른 글
WEB프로젝트 - Woori-Dongne 🏙️ (0) | 2023.08.18 |
---|---|
트러블 슈팅 - unic5n 영수증체크 관련 (0) | 2023.06.12 |
WEB프로젝트_TEAM_DREAM🧱 (0) | 2023.05.05 |
첫 WEB프로젝트 회고 - unic5n🦄 가구이커머스 모델링 (1) | 2023.04.15 |
git - cherry-pick(체리픽) (0) | 2023.03.28 |