[go] Go 언어를 사용하여 AWS S3 버킷에서 파일 다운로드하기

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

1. AWS SDK 설치

먼저, AWS SDK for Go를 설치해야 합니다. 다음 명령어로 AWS SDK를 설치하세요.

go get -u github.com/aws/aws-sdk-go

2. AWS 자격 증명 구성

AWS S3 버킷에 액세스하기 위해 자격 증명을 구성해야 합니다. 환경 변수 또는 AWS 자격 증명 프로파일을 사용하여 자격 증명 정보를 설정하세요.

3. 파일 다운로드

아래 예제 코드는 myBucket 버킷에서 myFile.txt 파일을 다운로드하는 방법을 보여줍니다.

package main

import (
	"fmt"
	"os"

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

func main() {
	sess, err := session.NewSession(&aws.Config{
		Region: aws.String("ap-northeast-2"),
	})

	svc := s3.New(sess)

	file, err := os.Create("myFile.txt")
	if err != nil {
		exitErrorf("Unable to open file for writing, %v", err)
	}
	defer file.Close()

	downloader := s3manager.NewDownloader(sess)

	_, err = downloader.Download(file,
		&s3.GetObjectInput{
			Bucket: aws.String("myBucket"),
			Key:    aws.String("myFile.txt"),
		})
	if err != nil {
		exitErrorf("Unable to download item, %v", err)
	}

	fmt.Println("Downloaded myFile.txt")
}

func exitErrorf(msg string, args ...interface{}) {
	fmt.Fprintf(os.Stderr, msg+"\n", args...)
	os.Exit(1)
}

위 코드에서는 AWS SDK를 사용하여 myBucket 버킷에서 myFile.txt 파일을 다운로드하는 과정을 보여주고 있습니다. 다운로드 완료 후에는 “Downloaded myFile.txt”가 출력됩니다.

결론

이렇게 Go 언어를 사용하여 AWS S3 버킷에서 파일을 다운로드할 수 있습니다. AWS SDK를 사용하여 간단한 코드로 파일을 다운로드할 수 있으며, 이를 통해 AWS S3와의 통합을 손쉽게 구현할 수 있습니다.