[kotlin] Amazon S3에 파일 업로드 및 다운로드하는 코틀린 예제

Amazon S3는 파일을 안전하게 저장하고 다양한 기능을 제공하는 클라우드 스토리지 서비스입니다. 이 서비스를 사용해 파일을 업로드 및 다운로드하는 방법을 살펴보겠습니다.

Amazon S3 라이브러리 추가

먼저, Amazon S3를 사용하기 위해 aws-java-sdk-s3 라이브러리를 Gradle 또는 Maven을 사용하여 프로젝트에 추가합니다.

Gradle을 사용한다면 build.gradle에 다음과 같이 의존성을 추가합니다.

dependencies {
    implementation 'software.amazon.awssdk:s3:2.17.59'
}

Maven을 사용한다면 pom.xml에 다음과 같이 의존성을 추가합니다.

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>s3</artifactId>
    <version>2.17.59</version>
</dependency>

Amazon S3 파일 업로드

Amazon S3에 파일을 업로드하기 위해 S3Client를 초기화하고 PutObjectRequest를 사용하여 파일을 업로드합니다.

import software.amazon.awssdk.services.s3.S3Client
import software.amazon.awssdk.services.s3.model.PutObjectRequest
import java.io.File

val s3Client = S3Client.create()

fun uploadFile(bucketName: String, key: String, file: File) {
    val putObjectRequest = PutObjectRequest.builder()
        .bucket(bucketName)
        .key(key)
        .build()

    s3Client.putObject(putObjectRequest, file.toPath())
}

위의 코드에서 bucketName은 업로드할 버킷의 이름, key는 업로드된 객체의 키, file은 업로드할 파일을 가리키는 File 객체입니다.

Amazon S3 파일 다운로드

Amazon S3에서 파일을 다운로드하기 위해 GetObjectRequest를 사용하여 파일을 다운로드합니다.

import software.amazon.awssdk.services.s3.model.GetObjectRequest

fun downloadFile(bucketName: String, key: String, downloadLocation: File) {
    val getObjectRequest = GetObjectRequest.builder()
        .bucket(bucketName)
        .key(key)
        .build()

    s3Client.getObject(getObjectRequest, downloadLocation.toPath())
}

위의 코드에서 bucketName은 다운로드할 버킷의 이름, key는 다운로드할 객체의 키, downloadLocation은 다운로드한 파일을 저장할 경로를 나타냅니다.

이제 Amazon S3에 파일 업로드 및 다운로드하는 방법을 살펴보았습니다. 더 자세한 정보는 Amazon S3 공식 문서를 참고하시기 바랍니다.