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 |
Tags
- 루비 온 레일즈
- Django
- 레일즈
- 홈페이지 개발하기
- node.js
- 웹 프론트엔드
- 모듈화
- 루비
- nodejs api
- jquery
- Ruby On Rails
- 데스크탑애플리케이션
- 루비온레일즈
- Python
- 웹 프로그래밍
- 파이썬 웹 프레임워크
- 프론트엔드
- 꿀팁
- nodejs
- express-mysql-session
- django 공부하기
- rails review
- 예스인테리어
- css3
- 장고 공부하기
- 웹프로그래밍
- rails
- 웹 프로그래밍 입문
- 모닝버드
- 장고
Archives
- Today
- Total
노래하듯 이야기하고, 춤추듯 정복하라.
[Node.js API 개발] AWS S3 이미지 업로드, multer-s3 사용 본문
# 필요한 모듈
const multer = require('multer');
const multerS3 = require('multer-s3');
const fs = require('fs'); // 설치 x
const path = require('path'); // 설치 x
const AWS = require('aws-sdk');
# app.js에서 aws 설정 세팅
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region : 'ap-northeast-2'
});
# img 업로드 구현
1. upload 모듈 만들기
- 필자는 라우터 파일에 만듬 -> 따로 모듈화하여 사용하는게 깔끔함.
- npm(예제가 있어서 간편하게 따라하기 좋음) => https://www.npmjs.com/package/multer-s3
// 이미지 저장경로, 파일명 세팅
const upload = multer({
storage: multerS3({
s3: s3,
bucket: "numberone-s3-userinfo", // 버킷 이름
contentType: multerS3.AUTO_CONTENT_TYPE, // 자동을 콘텐츠 타입 세팅
acl: 'public-read', // 클라이언트에서 자유롭게 가용하기 위함
key: (req, file, cb) => {
console.log(file);
cb(null, file.originalname)
},
}),
limits: { fileSize: 5 * 1024 * 1024 }, // 용량 제한
});
[ TMI ]
* 같이 일하고 계시는 형님분께서 간편하게 s3 사용할 수 있도록 모듈을 만들어 놓으셨네요! (깨알홍보)
=> 링크 : https://www.npmjs.com/package/tls_aws
2. upload 모듈을 이용한 라우터 구현
router.post('/post/img', upload.single('img'), (req, res) => {
try {
console.log("req.file: ", req.file); // 테스트 => req.file.location에 이미지 링크(s3-server)가 담겨있음
let payLoad = { url: req.file.location };
response(res, 200, payLoad);
} catch (err) {
console.log(err);
response(res, 500, "서버 에러")
}
});
3. Postman으로 데이터 보내보기 (Body -> from-data로 보내야 함)
- 데이터 key(name) 값 세팅과 파일을 첨부해줌
- 실제로 구현된 서버에서 온 response: 아래 url이 aws s3 서버에 저장되어 있는 이미지 위치이다.
'프로그래밍 > node.js' 카테고리의 다른 글
[맥 mysql password 오류] Client does not support authentication protocol requested by server; consider upgrading MySQL client (0) | 2019.07.26 |
---|---|
[Node.js API 개발] 로그인 상태 유지 & 자동 로그인 (0) | 2019.05.27 |
[Node.js API 개발] JWT 토큰을 활용한 데이터 변조 및 탈취 방지 (0) | 2019.05.27 |
[Node.js API 개발] Node.js 모듈 사용 시 주의 할 점 (0) | 2019.05.27 |
session정보 mysql에 저장하기 & passport 인증 구현 (1) | 2018.01.06 |
Comments