[go] Go 언어를 사용하여 AWS S3 버킷 간 파일 복사하기

AWS SDK for Go 언어를 사용하여 한 AWS S3 버킷에서 다른 버킷으로 파일을 복사하는 방법에 대해 알아보겠습니다.

환경 설정

먼저, Go 언어에서 AWS SDK를 사용하기 위해 다음과 같이 패키지를 가져옵니다.

import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
)

그런 다음, AWS 계정의 자격 증명을 구성하고 AWS 서비스와의 세션을 생성해야 합니다.

sess := session.Must(session.NewSession(&aws.Config{
    Region: aws.String("ap-northeast-2"),
}))
svc := s3.New(sess)

위의 코드에서 ap-northeast-2는 사용하려는 AWS 리전에 해당하는 코드로 변경해야 합니다.

파일 복사

이제 실제로 파일을 복사하는 코드를 작성해 봅시다.

_, err := svc.CopyObject(&s3.CopyObjectInput{
    Bucket:     aws.String("destination-bucket"),
    CopySource: aws.String("/source-bucket/source-key"),
    Key:        aws.String("destination-key"),
})
if err != nil {
    // 복사 중에 오류가 발생한 경우 처리 로직 추가
}

위의 코드에서 destination-bucket은 파일을 복사할 대상 버킷 이름이며, source-bucketsource-key는 원본 버킷과 파일의 경로를 나타냅니다. destination-key는 대상 버킷에 저장될 파일의 키입니다.

완료

이제 Go 언어를 사용하여 AWS S3 버킷 간 파일 복사하는 방법에 대해 알아보았습니다. 이를 통해 AWS SDK를 사용하여 AWS S3와 상호 작용하는 방법에 대한 기초를 익힐 수 있었습니다.

참고 문헌: