Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 제너레이터와 async/await
- 이벤트
- const
- 새 코드 받아오기
- DOM
- 블로그 서비스 최적화
- 브라우저의 렌더링 과정
- middleware pattern
- version management
- 커리어
- 모던 자바스크립트 Deep Dive
- Babel과 Webpack
- js pattern
- 프론트엔드 성능 최적화 가이드
- package management
- pr review
- 자바스크립트 딥다이브
- 자바스크립트 패턴
- peerdependencies
- 진행기록
- mixin pattern
- 학습내용정리
- 올림픽 통계 서비스 최적화
- 이미지 갤러리 최적화
- js pattern
- unique identifiers
- 프로그래머스
- 스코프
- 자바스크립트
- 딥다이브
Archives
- Today
- Total
Dev Blog
How to set up Multer 본문
Sequelize(ORM)을 이용해 CRUD API를 만들었다.
검색 기능이 특히 어려웠는데, 페이지네이션과 검색어에 따른 API 예외처리를 만들어주는게
쉽지 않았다.
로컬에서 완벽하다 생각해서, AWS EC2에 배포하면 다른 오류가 생기고.. 다시 고치고 배포하고..
반복했다.
Multer s3를 이용한 s3업로드와 업로드 된 파일의 url을 DB에 저장하는 작업도 쉽지 않았다.
Multer
라이브러리
const multer = require('multer');
const path = require('path');
const AWS = require('aws-sdk');
const multerS3 = require('multer-s3');
const dotenv = require('dotenv');
dotenv.config();
AWS S3셋팅
이미지 업로드 전용 S3 버킷을 만들었는데, key를 발급받을 수 있다.
key 파일을 확인해보면 accesskey, secreatAccessKey를 얻을 수 있다.
AWS.config.update({
accessKeyId: process.env.S3_ACCESS_KEY_ID,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
region: 'ap-northeast-2',
});
파일명, 버킷 설정
파일 최대 크기는 :5mb,
파일명은 key에서 업로드 날짜로 지정해주었다.
const upload = multer({
storage: multerS3({
s3: new AWS.S3(),
bucket: 'S3 이미지 버킷명',
key: function (req, file, cb) {
let extension = path.extname(file.originalname);
cb(null, Date.now().toString() + extension);
},
}),
limits: { fieldSize: 5 * 1024 * 1024 },
});
S3에 업로드
여러장을 업로드하기에 upload.array로 했다
upload.array 안의 imgs는 클라이언트 폼데이터 전송부의 name과 같아야하고,
20은 파일 업로드 최대 수를 의미한다.
업로드 뒤의 콜백 에서 req.files로 업로드된 사진들의 경로와, 파일명, 기타 정보를 얻을 수 있다.
app.post('/image', upload.array('imgs', 20), function (req, res) {
console.log(req.files)
}
출처: velog.io/@yesparrot/TIL-02.10
참고할 내용: zamezzz.tistory.com/299
'BootCamp_Codestates > TILookCloser' 카테고리의 다른 글
Git 명령어 (0) | 2021.03.01 |
---|---|
Node.js (0) | 2021.01.28 |
dotenv 환경변수 사용하기 (0) | 2021.01.28 |
HA. 구현 프로세스 정리(초기 설정) (0) | 2021.01.25 |
Comments