How to use AWS SDK for Go with MinIO Server
MinIO 서버와 함께 Go용 AWS SDK를 사용하는 방법
aws-sdk-go is the official AWS SDK for the Go programming language.
aws-sdk-go는 Go 프로그래밍 언어용 공식 AWS SDK입니다.
In this recipe we will learn how to use aws-sdk-go with MinIO server.
이 레시피에서는 MinIO 서버와 함께 aws-sdk-go를 사용하는 방법을 알아봅니다.
1. Prerequisites
1. 전제조건
Install MinIO Server from here.
여기에서 MinIO 서버를 설치하세요.
2. Installation
2. 설치
Install aws-sdk-go from AWS SDK for Go official docs here
Go용 AWS SDK 공식 문서에서 aws-sdk-go를 여기에서 설치하세요.
3. Example
3. 예
Please replace Endpoint,Credentials, Bucket with your local setup in this example.go file.
이 example.go 파일에서 Endpoint, Credentials, Bucket을 로컬 설정으로 바꾸십시오.
Example below shows putObject and getObject operations on MinIO server using aws-sdk-go.
아래 예에서는 aws-sdk-go를 사용하는 MinIO 서버의 putObject 및 getObject 작업을 보여줍니다.
package main
import (
"fmt"
"os"
"strings"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
func main() {
bucket := aws.String("newbucket")
key := aws.String("testobject")
// Configure to use MinIO Server
// MinIO 서버를 사용하도록 구성
s3Config := &aws.Config{
Credentials: credentials.NewStaticCredentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
Endpoint: aws.String("http://localhost:9000"),
Region: aws.String("us-east-1"),
DisableSSL: aws.Bool(true),
S3ForcePathStyle: aws.Bool(true),
}
newSession := session.New(s3Config)
s3Client := s3.New(newSession)
cparams := &s3.CreateBucketInput{
Bucket: bucket, // Required
}
// Create a new bucket using the CreateBucket call.
// CreateBucket 호출을 사용하여 새 버킷을 생성합니다.
_, err := s3Client.CreateBucket(cparams)
if err != nil {
// Message from an error.
// 오류 메시지입니다.
fmt.Println(err.Error())
return
}
// Upload a new object "testobject" with the string "Hello World!" to our "newbucket".
// 우리의 "newbucket"에 "Hello World!" 문자열이 포함된 새 객체 "testobject"를 업로드합니다.
_, err = s3Client.PutObject(&s3.PutObjectInput{
Body: strings.NewReader("Hello from MinIO!!"),
Bucket: bucket,
Key: key,
})
if err != nil {
fmt.Printf("Failed to upload data to %s/%s, %s\n", *bucket, *key, err.Error())
return
}
fmt.Printf("Successfully created bucket %s and uploaded data with key %s\n", *bucket, *key)
// Retrieve our "testobject" from our "newbucket" and store it locally in "testobject_local".
// "newbucket"에서 "testobject"를 검색하고 "testobject_local"에 로컬로 저장합니다.
file, err := os.Create("testobject_local")
if err != nil {
fmt.Println("Failed to create file", err)
return
}
defer file.Close()
downloader := s3manager.NewDownloader(newSession)
numBytes, err := downloader.Download(file,
&s3.GetObjectInput{
Bucket: bucket,
Key: key,
})
if err != nil {
fmt.Println("Failed to download file", err)
return
}
fmt.Println("Downloaded file", file.Name(), numBytes, "bytes")
}
4. Run the Program
4. 프로그램 실행
go run example.go
example.go를 실행해 보세요
Successfully created bucket newbucket and uploaded data with key testobject
newbucket 버킷을 성공적으로 생성하고, 주요 testobject로 데이터를 업로드했습니다
Downloaded file testobject_local 18 bytes
testobject_local 18 바이트로 다운로드된 파일