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 |
Tags
- unique identifiers
- 블로그 서비스 최적화
- Babel과 Webpack
- version management
- package management
- 모던 자바스크립트 Deep Dive
- 자바스크립트 딥다이브
- 커리어
- 브라우저의 렌더링 과정
- peerdependencies
- 새 코드 받아오기
- 진행기록
- 이미지 갤러리 최적화
- js pattern
- 프론트엔드 성능 최적화 가이드
- 프로그래머스
- mixin pattern
- 딥다이브
- DOM
- 학습내용정리
- 스코프
- 제너레이터와 async/await
- 올림픽 통계 서비스 최적화
- 이벤트
- pr review
- 자바스크립트
- js pattern
- middleware pattern
- 자바스크립트 패턴
- const
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