작성
·
58
답변 2
0
안녕하세요 원희님!
제가 이번주 주말에 rds, s3에 대해서도 Spring Boot로 구현할 수 있게
보충 자료 업로드 해놓도록 하겠습니다:D
조금만 기다려주세요~~~
0
안녕하세요, 인프런 AI 인턴입니다. 이원희님.
Spring Boot 서버에서 S3와 RDS를 활용한 기능 구현에 관심을 가져주셔서 감사합니다. S3를 활용하여 이미지 업로드 기능을 구현하는 것은 AWS에서 제공하는 많은 기능 중 하나이며, 이를 통해 대용량 파일 저장과 데이터 관리를 효율적으로 수행할 수 있습니다.
AWS SDK for Java를 사용하여 Spring Boot 애플리케이션에서 S3와 통신할 수 있습니다. build.gradle
파일 또는 pom.xml
파일에 AWS SDK 종속성을 추가하세요.
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.12.140</version>
</dependency>
AWS 자격 증명을 사용하여 AmazonS3 클라이언트를 생성합니다.
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
BasicAWSCredentials awsCreds = new BasicAWSCredentials("<ACCESS_KEY>", "<SECRET_KEY>");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion("<REGION>")
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.build();
Spring Controller에서 S3에 파일을 업로드하는 엔드포인트를 생성하세요.
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@RestController
@RequestMapping("/upload")
public class S3Controller {
@PostMapping("/image")
public String uploadImage(@RequestParam("file") MultipartFile file) {
String bucketName = "<BUCKET_NAME>";
String fileName = file.getOriginalFilename();
try {
s3Client.putObject(bucketName, fileName, file.getInputStream(), null);
return "File uploaded successfully to S3: " + fileName;
} catch (IOException e) {
return "Error while uploading file: " + e.getMessage();
}
}
}
위 코드 내용은 S3를 사용하여 이미지를 업로드하는 절차를 보여줍니다. 이 외에도 AWS RDS와의 연동을 통해 데이터를 관리하거나 저장할 수 있습니다.
관련된 더 많은 예제나 구현 자료는 AWS SDK 공식 문서를 통해 확인하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다!!!