[go] Go 언어를 사용하여 AWS S3 버킷에 대용량 파일 업로드하기

AWS S3는 대용량 파일을 안전하게 저장하고 사용할 수 있는 클라우드 스토리지 서비스입니다. 이전에는 Go 언어로 작성된 프로그램을 통해 AWS S3 버킷으로 파일을 업로드하는 방법에 대해 살펴보겠습니다.

사전 요구 사항

이 예제를 실행하기 전에 먼저 다음 사항이 설치 및 설정되어 있어야 합니다.

  1. Go 언어 설치
  2. AWS 계정 및 액세스 키 설정

Go 언어를 사용한 AWS S3 파일 업로드 예제

아래는 Go 언어를 사용하여 AWS S3 버킷으로 파일을 업로드하는 간단한 예제 코드입니다.

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"), // AWS 리전 설정
		Credentials: credentials.NewStaticCredentials("AKID", "SECRET_KEY", ""), // 액세스 키 설정
	})
	if err != nil {
		fmt.Println("Error creating session,", err)
		return
	}

	// S3 서비스 생성
	svc := s3.New(sess)

	// 업로드할 파일 경로
	filePath := "example.txt"
	file, err := os.Open(filePath)
	if err != nil {
		fmt.Println("Error opening file,", err)
		return
	}
	defer file.Close()

	// AWS S3에 파일 업로드
	_, err = svc.PutObject(&s3.PutObjectInput{
		Bucket: aws.String("bucket-name"), // 업로드할 버킷 이름 설정
		Key:    aws.String("example.txt"), // 업로드될 파일 이름
		Body:   file,                       // 업로드할 파일
	})
	if err != nil {
		fmt.Println("Error uploading file to S3,", err)
		return
	}

	fmt.Println("File uploaded to S3 successfully")
}

위의 코드에서는 AWS SDK for Go를 사용하여 세션을 생성하고 S3 서비스에 연결한 후, PutObject 함수를 사용하여 로컬 파일을 S3 버킷에 업로드합니다.

이제 위의 예제 코드를 통해 Go 언어로 AWS S3에 대용량 파일을 업로드하는 방법을 살펴보았습니다.