# [AWS] Amazon S3 ๋ฒ„ํ‚ท์—์„œ ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ
Study Repository

[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

ํ™œ๋™ํ•˜๊ธฐ