Backend/JavaScript,NodeJS, Express

s3๋กœ ์ด๋ฏธ์ง€ ์ €์žฅํ•˜๊ธฐ

jellylucy 2022. 1. 9. 18:06

๐ŸŽฏ  Amazon S3

Amazon S3๋ž€, Simple Storage Service์˜ ์•ฝ์ž๋กœ ์ธํ„ฐ๋„ท์šฉ ์Šคํ† ๋ฆฌ์ง€ ์ž…๋‹ˆ๋‹ค.

Amazon S3๋Š” ์›น์ƒ์—์„œ, ์–ธ์ œ ์–ด๋””๋“ ์ง€ ์›ํ•˜๋Š” ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ์›น ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Amazon S3์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • REST ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ €์žฅ / ์‚ญ์ œ / ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ๋กœ ์ด๋ฏธ์ง€ ํŒŒ์ผ, ์ •์  ๋ฆฌ์†Œ์Šค ๋“ฑ์„ S3์— ์˜ฌ๋ ค๋†“๊ณ  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋‚ด๊ตฌ์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.(๋ฐ์ดํ„ฐ ์œ ์‹ค ๊ฐ€๋Šฅ์„ฑ์˜ ๊ฑฐ์˜ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)

 


AWS S3 ๋ฒ„ํ‚ท ์ƒ์„ฑํ•˜๊ธฐ 

 

1. ๋ฒ„ํ‚ท ๋“ฑ๋กํ•˜๊ธฐ

 

2. ๊ถŒํ•œ์„ค์ • ๋ณ€๊ฒฝํ•˜๊ธฐ

 

3. s3๋ฅผ ์ด์šฉํ•ด ์ด๋ฏธ์ง€ ์—…๋กœ๋“œํ•˜๊ธฐ (MYSQL)

 


multer ๋ชจ๋“ˆ ์‚ฌ์šฉํ•˜๊ธฐ

multer ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ - multer.single(fieldname)

const multer = require('multer');
const upload = multer({
    dest : 'uploads/'
});

const UserController = require('../controllers/user')

router.post('/profile', upload.single('image'), UserController.uploadProfile)

module.exports = router;

๋ฉ”์ธ ๋กœ์ง์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด controller๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ค€๋‹ค. 

multer์˜ ์—ญํ• ์€ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ request ๊ฐ์ฒด์— file/files๋ผ๋Š” ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด ๋‹ค์Œnext()์œผ๋กœ ๋„˜๊ฒจ์ค€๋‹ค.

 

 controllers/userController.js ์ˆ˜์ •

 

controller์—์„œ๋Š” ๋ฐ›์€ request์—์„œ file ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ํ•˜๊ฑฐ๋‚˜,

ํŠน์ • ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.