0. AWS S3(Simple Storage Service)
AWS S3란 인터넷용 스토리지 서비스이다. 이 서비스는 개발자가 더 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 설계되어있다.
- 단순 웹 서비스 인터페이스를 사용해서 웹에서 언제 어디서나 원하는 양의 데이터를 저장하고 검색
- S3의 버킷은 무한대의 객체를 저장할 수 있으므로 스토리지의 요구를 미리 추정하여 관리할 필요가 없어 확장, 축소에 신경쓰지 않아도 됨
- HTTPS 프로토콜을 사용하여 SSL로 암호화된 엔드포인트를 통해 데이터를 안전하게 업로드, 다운로드 가능
1. 준비작업
(1) AWS 계정
(2) AWS 계정의 Access Key, Secret Key
(3) S3 버킷 생성
2. AWS SDK 모듈 설치
npm install aws-sdk
3. config/awsconfig.json
{
"accessKeyId": "access key를 입력해주세요.",
"secretAccessKey": "secret key를 입력해주세요.",
"region": "ap-northeast-2"
}
파일에 AWS 계정의 Access key, Secret key 작성
절대 외부로 노출되어서는 안됨
routes/waste-upload.js 파일에 AWS SDK 로딩
const AWS = require("aws-sdk");
AWS.config.loadFromPath(__dirname + "/../config/awsconfig.json");
let s3 = new AWS.S3();
추가해준다
4. multer 모듈
일반적으로 파일 업로드를 위해서 multer 모듈 필요
업로드된 파일을 S3에 바로 업로드할 수 있도록 multer-s3 모듈 사용하자
npm install multer
npm install multer-s3
클라이언트로부터 받은 이미지 파일을 S3에 업로드하는 라우터 함수 작성
var storage = multer.multerS3({ //s3
s3: s3,
bucket: 'cmh-project',
acl: 'public-read',
key: function (req, file, cb) {
cb(null, Math.floor(Math.random() * 1000).toString() + Date.now() + '.' + file.originalname.split('.').pop());
}
});
'Backend > nodejs' 카테고리의 다른 글
헤로쿠 git 오류들.. (1) | 2022.09.22 |
---|---|
헤로쿠(heroku)로 Node.js 배포 (0) | 2022.09.18 |
[Node.js] Re:웃주민 로그인 api 구현 (0) | 2022.09.11 |
[Node.js] Re:웃주민 회원가입/jwt token api 구현 (0) | 2022.09.11 |
[Node.js] app.js 포함 모듈들 (0) | 2022.09.11 |