Skip to content

Commit 064f85c

Browse files
authored
Merge pull request #72 from CommitField/fix/#71
fix: S3Config & CreatePetApi
2 parents 881d2e7 + c3c0360 commit 064f85c

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

โ€Žsrc/main/java/cmf/commitField/domain/pet/controller/PetController.javaโ€Ž

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import cmf.commitField.domain.pet.entity.Pet;
44
import cmf.commitField.domain.pet.service.PetService;
55
import lombok.RequiredArgsConstructor;
6+
import org.springframework.http.MediaType;
67
import org.springframework.web.bind.annotation.*;
8+
import org.springframework.web.multipart.MultipartFile;
79

810
import java.util.List;
911

@@ -15,9 +17,12 @@ public class PetController {
1517
private final PetService petService;
1618

1719
// ์ƒˆ๋กœ์šด ํŽซ ์ถ”๊ฐ€
18-
@PostMapping
19-
public Pet createPet(@RequestParam String name, @RequestParam String imageUrl) {
20-
return petService.createPet(name, imageUrl);
20+
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
21+
public Pet createPet(
22+
@RequestParam String name,
23+
@RequestPart(value = "imageFile") MultipartFile imageFile
24+
) throws Exception {
25+
return petService.createPet(name, imageFile);
2126
}
2227

2328
// ๋ชจ๋“  ํŽซ ์กฐํšŒ

โ€Žsrc/main/java/cmf/commitField/domain/pet/service/PetService.javaโ€Ž

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
import cmf.commitField.domain.pet.entity.Pet;
44
import cmf.commitField.domain.pet.repository.PetRepository;
5+
import cmf.commitField.global.aws.s3.S3Service;
56
import lombok.RequiredArgsConstructor;
67
import org.springframework.stereotype.Service;
8+
import org.springframework.web.multipart.MultipartFile;
79

10+
import java.io.IOException;
811
import java.util.List;
912
import java.util.Optional;
1013

@@ -13,9 +16,17 @@
1316
public class PetService {
1417

1518
private final PetRepository petRepository;
19+
private final S3Service s3Service;
1620

1721
// ์ƒˆ๋กœ์šด ํŽซ ์ƒ์„ฑ
18-
public Pet createPet(String name, String imageUrl) {
22+
public Pet createPet(String name, MultipartFile imageFile) throws IOException {
23+
24+
// โœ… S3 ์—…๋กœ๋“œ ๋กœ์ง ์ถ”๊ฐ€
25+
String imageUrl = null;
26+
if (imageFile != null && !imageFile.isEmpty()) {
27+
imageUrl = s3Service.uploadFile(imageFile, "pet-images");
28+
}
29+
1930
Pet pet = new Pet(name, imageUrl);
2031
return petRepository.save(pet);
2132
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
package cmf.commitField.global.aws.s3;
22

3+
import org.springframework.beans.factory.annotation.Value;
34
import org.springframework.context.annotation.Bean;
45
import org.springframework.context.annotation.Configuration;
6+
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
7+
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
58
import software.amazon.awssdk.regions.Region;
69
import software.amazon.awssdk.services.s3.S3Client;
710

811
@Configuration
912
public class S3Config {
13+
14+
@Value("${aws.access-key-id}")
15+
private String accessKeyId;
16+
17+
@Value("${aws.secret-access-key}")
18+
private String secretAccessKey;
19+
1020
@Bean
1121
public S3Client s3Client() {
1222
return S3Client.builder()
1323
.region(Region.AP_NORTHEAST_2)
24+
.credentialsProvider(StaticCredentialsProvider.create(
25+
AwsBasicCredentials.create(accessKeyId, secretAccessKey)
26+
))
1427
.build();
1528
}
1629
}

0 commit comments

Comments
ย (0)