-
Amazon) express(node.js) 이용해서 s3에 이미지 업로드하기Programing Study/E.T.C 2022. 1. 10. 11:55728x90반응형
multer-3 가 제대로 작동하지 않아서 매우 삽집을 계속하다가 여러 코드 참고후 구현하였습니다.
다른분들은 참고후 시간을 절약하길 바랍니다 ㅠ---------------------------------------------------------------------
- S3 정책관련 참고자료
https://javascript.plainenglish.io/file-upload-to-amazon-s3-using-node-js-42757c6a39e9
- 구현 코드
필요 모듈 - (multer, aws-sdk)
//s3.json //상단의 정책 참고 주소에서 해당 키 발급받는거까지 다나옴 { "accessKeyId": "", "secretAccessKey": "", "region": "" }
//s3Upload.js const multer = require('multer'); const aws = require('aws-sdk'); aws.config.loadFromPath(__dirname + '/../config/s3.json'); const upload = multer({storage: multer.memoryStorage()}); const s3 = new aws.S3(); module.exports = { upload, s3 };
const imageUpload = require('../modules/s3Upload').upload const s3 = require('../modules/s3Upload').s3 //image upload test router.post('/image_upload', imageUpload.single('image'), async (req,res,next) =>{ const uploadParams = { acl:'public-read', ContentType:'image/png', Bucket: 'bucekt-name', Body: req.file.buffer, Key: Date.now() + '.' + req.file.originalname.split('.').pop(), }; const result = await s3.upload(uploadParams).promise() console.log(req.body.location) // 업로드 후 url 받기 res.send(JSON.stringify('success')) });
도움되셨다면 하단의 광고 클릭 한번 부탁드립니다~ :)
728x90반응형'Programing Study > E.T.C' 카테고리의 다른 글
Node / Express: EADDRINUSE, Address already in use - Kill server (0) 2022.01.26 Mysql) Timestemp(데이터타입) 조회할때 날짜 비교하기 (0) 2022.01.18 NPM과 YARM의 차이점 (0) 2022.01.05 Docker) Dockerfile의 각 명령어 의미 (0) 2021.11.21 Docker) 자주 쓰는 Docker 명령어 (0) 2021.11.21