์ด๋ฏธ์ง ์ ๋ก๋ ๊ธฐ๋ฅ์ nodejs๋ก ๊ตฌํ ์ค์ด๋ค. ์ด์ ์ ์ฒ์ ๊ฐ๋จํ๊ฒ ํ๋ ํ๋ก์ ํธ์์๋ ๋จ์ํ ์๋ฒ์ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ์ด๋ฏธ์ง ํ์ผ์ ์ ์ฅํ๊ณ , ๋ค์ ๋ถ๋ฌ์ฌ๋๋ ์ด๋ฏธ์งํ์ผ์ base64๋ก ๋ณํํด ๋ค์ ๋๊ฒจ์ฃผ์๋ค. ์ด๋ฒ์๋ ์๋ง์กด์ S3์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํด๋ณด๋ ค๊ณ ํ๋ค.
nodejs์์ S3 ์๋น์ค๋ฅผ ์ด์ฉํ๋ ค๋ฉด ๋จผ์ S3 ๋ฒํท์ ์์ฑํ๊ณ , IAM์ ์๋ก์ด ์ฌ์ฉ์๋ฅผ ๋ฑ๋กํด ์ด์ธ์ค ํค๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ค.
1. S3 ๋ฒํท
S3 ๋ฒํท ์์ฑ์ ํ ๋๋ ๋ชจ๋ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ์ ํ๊ณ ๋์ด๊ฐ๋ค.
๋ฒํท์ ์์ฑํ ๋ค์์๋ ๋ฒํท ์ ์ฑ ์ ์์ ํด์ฃผ์ด์ผ ํ๋ค. ๋ฒํท ์ด๋ฆ ํด๋ฆญ > ๊ถํ > ๋ฒํท ์ ์ฑ ์์ ๋ณผ ์ ์๋ค.
๋ฒํท ์ ์ฑ ์ JSON ํ์์ผ๋ก ๋์ด ์๋๋ฐ, ์ ์ฑ ์์ฑ๊ธฐ๋ฅผ ์ด์ฉํด์ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.
๋ฒํท ARN์ ํด๋ฆญํด์ ๋ณต์ฌํ๊ณ ์ ์ฑ ์์ฑ๊ธฐ๋ก ๋ค์ด๊ฐ๋ค.
์ฌ์ง๊ณผ ๊ฐ์ด ์
๋ ฅํ๋ค. Actions์๋ getObject
๋ฅผ ์ ํํ๊ณ , ARN์๋ ์๊น ๋ณต์ฌํ ๊ฒ์ ๋ถ์ฌ๋ฃ๊ธฐํ๊ณ ๋์ \*
์ ๋ถ์ฌ์ค๋ค.
ํ์ ๋์จ JSON ํํ์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ณต์ฌํด์ ๋ถ์ฌ ๋ฃ์ด์ค๋ค.
2. IAM
IAM์ ๋ด AWS ๋ฆฌ์์ค์ ์ ๊ทผํ๊ธฐ ์ํ ์ฌ์ฉ์ ์ก์ธ์ค ์ ์ฑ ์ ๊ด๋ฆฌํ๊ธฐ์ํ ์๋น์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฌ์ฉ์ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ์ก์ธ์ค ํค๋ฅผ ๋ฐ๊ธ๋ฐ๋ ์ ํ์ ์ ํํ๋ค.
๊ถํ ์ค์ ์ด๋ค. ๊ธฐ์กด ์ ์ฑ
์ง์ ์ฐ๊ฒฐ์์ AmazonS3FullAccess
๋ฅผ ์ ํํด์ค๋ค.
์ฌ์ฉ์ ์์ฑ์ด ์๋ฃ๋๋ฉด ์์ ๊ฐ์ด ์ก์ธ์คํค ์ ์ํฌ๋ฆฟ ํค๊ฐ ๋ฐ๊ธ๋๋ค. ์ด ์ฐฝ์ ๋์ด๊ฐ๋ฉด ๋ค์ ๋ณผ ์ ์์ผ๋๊น ์์ ํ ๊ณณ์ ๋ณต์ฌํด์ ์ ์ฅํด๋๋ค. ๋ ๋ฐ๋ณด๊ฐ์ด ์บก์ณ๋ง ํด๋๊ฐ์ง๊ณ ๋์ค์ ์ฌ์ง ๋์๋๊ณ ํ์ ํ์ ๋น๊ตํด๊ฐ๋ฉฐ ์ ๋ ฅํ๋ค. ์ผํด.
๋ชจ๋ ์ค์ ์ ์๋ฃํ๊ณ , ์๋์ ์์ฑํ ์ด๋ฏธ์ง ์
๋ก๋๋ฅผ ์ํ ์ฝ๋๋ฅผ ์คํํ๋๋ฐ Access-denied ์๋ฌ๊ฐ ๋์๋ค.
S3 ๋ฒํท์ ๋นผ๋จน์ ์ค์ ์ด ํ๋ ์์๋ค. ๋ค์ ๋ฒํท ์ค์ ์ ๊ถํ์ผ๋ก ๋ค์ด์์ ACL์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊พธ์ด์ค๋ค.
S3์ ์์๋ก ์ด๋ฏธ์ง๋ฅผ ํ๋ ์ ๋ก๋ํด๋ณด์๋ค. ๊ฐ์ฒด URL๋ก ๋์ค๋ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ์ด๋ฏธ์ง๊ฐ ์ ๋ณด์ด๋ ๊ฒ์ ํ์ธํ๋ค. ์ค์ ์๋ฒ์์ S3์ ์ ์ฅํ ์ด๋ฏธ์ง๋ฅผ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด์ค ๋ ์ URL์ ํ์ฉํ๋ค.