본 글은 AWS SDK에서 aws S3에 대한 요청 객체에 대해서 공부한 내용을 정리한 글입니다.
개요
프로젝트에서 파일을 관리할 때 클라우드 스토리지로 많이 사용되는 서비스 중 하나가 Amazon S3입니다.
S3는 대용량 파일을 안전하고 효율적으로 저장할 수 있는 기능을 제공하며, AWS SDK는 S3와 상호작용하기 위한 다양한 API를 지원합니다.
프로젝트를 하다가 S3에 파일을 업로드, 다운로드, 삭제하는 로직을 구현을 해야했습니다. 파일을 업로드, 다운로드, 삭제하는 것은 S3 사용에서 매우 기본적이면서도 중요한 작업입니다.
이러한 작업들을 쉽게 처리할 수 있도록 도와주는 것이 바로 AWS SDK에서 제공하는 요청(Request) 객체들입니다.
이번 글에서는 S3에서 자주 사용되는 요청 객체들인 PutObjectRequest, GetObjectRequest, DeleteObjectRequest 요청 객체들에 대해 간략히 살펴보겠습니다.
PutObjectRequest
File file = new File("path/to/file");
PutObjectRequest putObjectRequest = new PutObjectRequest("bucket-name", "key", file);
s3Client.putObject(putObjectRequest);
S3 버킷에 파일을 업로드할 때 사용하는 요청 객체입니다. 업로드할 파일의 내용, S3 버킷 이름, 객체 키(파일 경로와 이름) 등을 설정할 수 있습니다.
- "bucket-name": 업로드할 버킷의 이름.
- "key": S3 내에서 파일이 저장될 경로 및 파일 이름.
- file: 실제로 업로드할 파일 객체.
GetObjectRequest
GetObjectRequest getObjectRequest = new GetObjectRequest("bucket-name", "key");
S3Object s3Object = s3Client.getObject(getObjectRequest);
InputStream inputStream = s3Object.getObjectContent();
S3에서 파일을 다운로드할 때 사용하는 요청 객체입니다. 다운로드할 S3 버킷 이름과 객체 키(파일 경로와 이름)를 지정하여 파일을 가져옵니다.
DeleteObjectRequest
DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest("bucket-name", "key");
s3Client.deleteObject(deleteObjectRequest);
S3 버킷에서 파일을 삭제할 때 사용하는 요청 객체입니다. 삭제할 파일의 S3 버킷 이름과 객체 키를 지정하여 해당 파일을 삭제할 수 있습니다.
결론
- PutObjectRequest: 파일을 S3에 업로드할 때 사용.
- GetObjectRequest: S3에서 파일을 다운로드할 때 사용.
- DeleteObjectRequest: S3에서 파일을 삭제할 때 사용.
이러한 객체들은 각각의 작업(업로드, 다운로드, 삭제)에 필요한 파라미터를 캡슐화하여, S3 클라이언트(AmazonS3 클래스)를 통해 처리할 수 있게 해줍니다.
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2024.10.08 - @ComponentScan (0) | 2024.10.08 |
---|---|
[TIL, 일일 회고] 2024.10.07 - @ModelAttribute가 자동 변환 할 수 없는 타입 (0) | 2024.10.07 |
[TIL, 일일 회고] 2024.10.05 - @Test 어노테이션이란❓ (0) | 2024.10.05 |
[TIL, 일일 회고] 2024.10.04 -JPQL -> native query (0) | 2024.10.04 |
[TIL, 일일 회고] 2024.10.03 - GitHub Merge 이슈 재활용 (이슈번호와 제목을 함께 가져오는 방법) (1) | 2024.10.03 |