반업주부의 일상 배움사

[Golang] 파일 업로드 > S3 본문

IT 인터넷/Golang

[Golang] 파일 업로드 > S3

Banjubu 2022. 5. 18. 14:43
반응형

 

1. 패키지 다운로드

$ go get github.com/aws/aws-sdk-go-v2/aws
$ go get github.com/aws/aws-sdk-go-v2/config

 

2. 주요 코드

// 업로드된 파일 정보
imageFile, imageFileHeader, _ := c.Request.FormFile("imageFile")

// 바이트 버퍼로 변환
buf := make([]byte, imageFileHeader.Size)
imageFile.Read(buf)

// AWS 세션 생성
session, err := session.NewSession(&aws.Config{
	Region: aws.String("ap-northeast-2"),
	Credentials: credentials.NewStaticCredentials(
		"AWS_ACCESS_KEY",
		"AWS_SECRET_ACCESS_KEY",
		"",
	),
})
if err != nil {
	log.Fatal(err)
}

// S3에 업로드
res, err := s3.New(session).PutObject(&s3.PutObjectInput{
	Bucket:      aws.String("banjubu"),
	Key:         aws.String(imageFileHeader.Filename),
	ACL:         aws.String("private"),
	Body:        bytes.NewReader(buf),
	ContentType: aws.String(imageFileHeader.Header.Get("Content-Type")),
})

 

 

 

 

영어, 중국어 공부중이신가요?

홈스쿨 교재. 한 권으로 가족 모두 할 수 있어요!

 

한GLO 미네르바에듀 : 네이버쇼핑 스마트스토어

한글로 영어가 된다?! 한글로[한GLO]는 영어 중국어 일어 러시아어 스페인어가 됩니다!!

smartstore.naver.com

 

반응형
LIST

'IT 인터넷 > Golang' 카테고리의 다른 글

[Golang] Supervisor로 데몬 실행하기  (0) 2022.05.18
[Golang] AWS CloudFront > 무효화 (CreateInvalidation)  (0) 2022.05.18
[Golang] Gin + MySQL  (0) 2022.05.16
[Golang] Hello Gin  (0) 2022.05.16
[Golang] echo 샘플2  (0) 2022.05.15
Comments