[AWS] Amazon S3 ๋ฒํท์์ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ
by rlaehddnd0422ํ๋ก์ ํธ ์งํ ์ค ๋ฐ์ํ ๋ฌธ์
form-data๋ก ์ ์กํ ๋ฐ์ดํฐ์ multipartFile(์ด๋ฏธ์ง)๊ฐ ํฌํจ๋์ด ์๋๊ฒฝ์ฐ ์กฐํ API์์ json์ผ๋ก multipartFile์ ๋ฆฌํดํด์ฃผ๊ธฐ์๋ ์ด๋ ค์์ด ์์์ต๋๋ค.
-> 1. ํ์ผ์ unique Name์ JSON์ ์ถ๊ฐํ๊ณ ,
-> 2. front ์น๊ตฌ๋ค์ด ์๋ฒ์ ์ ์ฅ๋, S3์์ ๋ฐ์์จ ํ์ผ๋งํฌ๋ก ์ฒ๋ฆฌํ๋๋ก ๋ฐฉ์์ ๋ณ๊ฒฝํ์์ต๋๋ค.
2๋ฒ๊ณผ์ ์์ ๋งํฌ๋ฅผ ํตํด ๊ฐ์ฒด์ ์ ๊ทผํ๊ธฐ ์ํด์๋ S3 ๋ฒํท์ ๋ํ์ฌ ๊ถํ์ public์ผ๋ก ์ด์ด์ฃผ์ด์ผ ํ๋๋ฐ ์ด ํฌ์คํ ์์๋ ๊ทธ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
1. aws s3 bucket ์ ์



2. ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ - ์ค์ ํด์

3. ๊ถํ ์ค์ ์์ ๊ฐ์ฒด- ๋์ด์ ์ ํํ์ฌ ๋ฒํท์ ๊ฐ์ฒด์ ์ฝ๊ธฐ ๊ถํ์ public์ผ๋ก ์ค์ ํฉ๋๋ค.

4. ์ด๋ ๊ฒ ์ค์ ํ ์ดํ์๋ ๋งํฌ๋ฅผ ํตํด ํ์ผ ๊ฐ์ฒด์ ์ ๊ทผํ๋ฉด ์๋์ ๊ฐ์ด ์ ๊ทผ์ด ์๋๋ฉด, ๋ฒํท ์ ์ฑ ์ ์๋์ ๊ฐ์ด ์ค์ ํด ์ค์๋ค.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1405592139000", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": [ "arn ์ฝ๋/*", "arn ์ฝ๋" ] } ] }
์ด์ ๋งํฌ๋ฅผ ํตํด ์ธ๋ถ์์ s3 ๋ฒํท์ ๊ฐ์ฒด์ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค!

ํ์๋ ํ์ผ์ unique Name์ JSON์ผ๋ก ๋๊ฒจ์ฃผ์ด์ ํ๋ก ํธ์์ ์ด unique Name์ ๋ฐ์ ์ด๋ฏธ์ง ํ๊ทธ์
"๋งํฌ"+"/uniqueName"์ผ๋ก ํ์ผ์ ์ ๊ทผํ ์ ์๋๋ก ์งํํ์์ต๋๋ค.
public static PostReadResponseDto toDto(Post post) { return new PostReadResponseDto( post.getId(), post.getCategory().getName(), post.getTitle(), post.getContent(), post.getLikes(), MemberDto.toDto(post.getMember()), ItemDto.toDto(post.getItem()), post.getPostImages().isEmpty() ? "testImage.jpg" : post.getPostImages().get(0).getUniqueName()); } }
+ ์กฐํ API์ ์๋ต DTO์ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ์, testImage.jpg๋ฅผ ๋ฆฌํดํ์ฌ S3์์ testImage.jpg๋ฅผ ๋ฐ์์ค๋๋ก ์ค์ ํจ.
<์ฐธ๊ณ ์๋ฃ>
AWS S3) S3๋ฅผ ์ด์ฉํ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํด๋๊ฐ๋ฉด์ ํ๋ก์ ํธ์ ์ฑ๊ฒฉ์ ๋ง๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ ์ํ์ ๋ํ ์ด๋ฏธ์ง๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์ S3๋ฅผ ์ด์ฉํ๊ฒ ๋์์ต๋๋ค.. ์ํ์ ๋ํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ ํ๋ ๊ธฐ๋ฅ๊ฐ์
awse2050.tistory.com
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422