iwinv Object Storage - Go SDK
SDK는 소프트웨어 개발키트(Software Development Kit)의 약어로, 개발자를 위한 플랫폼별 구축 도구세트입니다.
소프트웨어를 개발하고 실행하는데 필요한 모든것을 제공하며, 개발의 효율성을 높여주는 장점이 있습니다.
오늘 소개드릴 Go SDK는 Google에서 개발한 프로그래밍언어 기반으로 Go 언어로 작성된 프로그램을 개발 및 관리할수 있는데,
AWS의 Go를 지원하는 AWS SDK 서비스 등을 연동하여 개발자는 Go로 AWS를 쉽게 통합하고 활용할 수 있습니다.
본 메뉴얼은 AWS S3에서 제공하는 Go SDK를 이용하여 iwinv Object Storage를 사용하는 방법을 설명합니다.
참고문서
https://docs.aws.amazon.com/ko_kr/sdk-for-go/v1/developer-guide
https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/go
Go SDK 사용하기
테스트 OS : Ubuntu 18.04 LTS
Endpoint -> 오브젝트 스토리지 -> 스토리지 관리 -> 인증키 관리 -> API {IDC} Endpoint
## Endpoint 입력시에는 http://kr.object.iwinv.kr 혹은 https://kr.object.iwinv.kr 과 같은 형식으로 입력해주어야 코드가 정상 실행됩니다.
Access_Key : console.iwinv.kr -> 오브젝트 스토리지 -> 스토리지 관리 -> 인증키 관리 -> Access Key ID
Secret_Key : console.iwinv.kr -> 오브젝트 스토리지 -> 스토리지 관리 -> 인증키 관리 -> Secret Key ID
Go 설치하기
|
Go SDK 설치하기
|
# 예제코드
버킷 생성
package main import ( func main() { sess, err := session.NewSession(&aws.Config{ svc := s3.New(sess) _, err = svc.CreateBucket(&s3.CreateBucketInput{ fmt.Printf("Waiting for bucket %q to be created...\n", bucket) err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{ fmt.Printf("Bucket %q successfully created\n", bucket) func exitErrorf(msg string, args ...interface{}) {
# 실행 명령어 go run 파일명.go [Bucket_Name] |
버킷 삭제
package main import ( func main() { bucket := os.Args[1] sess, err := session.NewSession(&aws.Config{ svc := s3.New(sess) _, err = svc.DeleteBucket(&s3.DeleteBucketInput{ fmt.Printf("Waiting for bucket %q to be deleted...\n", bucket) err = svc.WaitUntilBucketNotExists(&s3.HeadBucketInput{ fmt.Printf("Bucket %q successfully deleted\n", bucket) func exitErrorf(msg string, args ...interface{}) {
# 실행 명령어 go run 파일명.go [Bucket_Name] |
버킷 리스트 확인
package main import ( func main() { svc := s3.New(sess) result, err := svc.ListBuckets(&s3.ListBucketsInput{}) log.Println("Buckets:") for _, bucket := range result.Buckets {
|