[go] Go 언어를 사용하여 AWS S3 버킷에 객체 메타데이터 추가하기

AWS S3는 객체 스토리지 서비스로, 개발자가 파일을 저장하고 검색할 수 있게 해줍니다. Go 언어를 사용하여 AWS S3 버킷에 객체를 업로드하면서 메타데이터를 추가하는 방법에 대해 알아보겠습니다.

1. AWS SDK 설치

먼저 Go 언어로 AWS와 상호작용하기 위해 AWS SDK를 설치해야 합니다. 아래 명령어로 AWS SDK를 설치합니다.

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

2. AWS S3 객체 메타데이터 추가하기

다음은 AWS SDK를 사용하여 AWS S3 버킷에 객체를 업로드하면서 메타데이터를 추가하는 예제 코드입니다.

package main

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

func main() {
	bucket := "your_bucket_name"
	key := "your_object_key"
	region := "your_aws_region"
	filePath := "path_to_your_file"
	
	sess, err := session.NewSession(&aws.Config{
		Region: aws.String(region)},
	)
	svc := s3.New(sess)

	params := &s3.PutObjectInput{
		Bucket: aws.String(bucket),
		Key:    aws.String(key),
		Body:   aws.ReadSeekCloser(file),
		Metadata: map[string]*string{
			"custom-metadata-key": aws.String("metadata-value"),
		},
	}

	_, err = svc.PutObject(params)
	if err != nil {
		log.Println(err)
		return
	}

	log.Println("Object uploaded successfully")
}

위의 코드에서 bucket, key, region, filePath 및 추가적인 메타데이터는 사용자가 실제 값으로 대체해야 합니다.

3. 실행

위 코드를 main.go 파일로 저장한 후 아래 명령어를 사용하여 코드를 실행합니다.

go run main.go

마무리

이제 Go로 AWS S3 버킷에 객체를 업로드하면서 메타데이터를 추가하는 방법에 대해 알아보았습니다. 이를 통해 파일을 업로드할 때 추가 정보를 포함시켜 더욱 유용한 객체를 생성할 수 있습니다.

더 많은 정보는 AWS SDK for Go 문서를 참조하시기 바랍니다.