[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๋ฅผ ๋ฐ์์ค๋๋ก ์ค์ ํจ.
<์ฐธ๊ณ ์๋ฃ>
'๐ Etc > Sol' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Git Actions์ Docker๋ฅผ ์ด์ฉํ CI/CD pipeline ๊ตฌ์ถ (0) | 2024.03.01 |
---|---|
axios ์์ฒญ ์ header์ Token์ด ๋ด๊ธฐ์ง ์๋ ๋ฌธ์ ํด๊ฒฐ (0) | 2023.09.22 |
[AWS] S3(Simple Storage Service)์๋ฒ์ Spring Boot ์ฐ๋ (0) | 2023.08.17 |
[MySQL] blocked because of many connection errrors ์๋ฌ ํด๊ฒฐ (0) | 2023.08.17 |
[DB] EC2 MySQL ์ฐ๋ ์ค ๋๋ฏธ ๋ฐ์ดํฐ ์ฝ์ ์ค๋ฅ ํด๊ฒฐ (0) | 2023.08.16 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422