Vultr Go 클라이언트를 사용하여 Vultr 오브젝트 스토리지 생성

소개

이 안내서는 Vultr Go 클라이언트를 사용하여 Go 애플리케이션에서 Vultr 오브젝트 스토리지 를 작성하는 방법을 설명합니다 . Vultr Object Storage는 S3 API와 호환됩니다.

전제 조건

  • Go 1.12+가 설치된 Windows, Linux 또는 macOS를 실행하는 컴퓨터
  • 기본 프로그래밍 지식.
  • 선택 사항 : Go를 지원하는 IDE (예 : Visual Studio Code, emacs 또는 Atom).

Vultr Go 클라이언트를 사용하여 객체 스토리지 생성

Vultr 이동 클라이언트 와 상호 작용하는 데 사용되는 Vultr의 API . Vultr API를 사용하면 Vultr Object Storage를 포함하여 계정과 관련된 리소스를 제어 할 수 있습니다. Vultr Go 클라이언트에 대한 자세한 내용은 이 기사 에서 확인할 수 있습니다 .

프로젝트 폴더 생성

현재 디렉토리에 폴더를 작성하십시오.

$ mkdir vultr_demo

새 폴더를 입력하십시오.

$ cd vultr_demo

모듈 초기화

$ go mod init vultr_demo

도서관 다운로드

$ go get github.com/vultr/govultr

API 키 환경 변수 설정

VULTR_API_KEY 환경 변수를 API 키로 설정하십시오. API 키는 https://my.vultr.com/settings/#settingsapi에 있습니다.

경고 : 비밀번호를 보호하는 것처럼 API 키를 보호하십시오. API 키는 결제, 서버 및 스토리지를 포함한 전체 계정에 액세스 할 수 있습니다.

예를 들어, Ubuntu Linux에서이 행을에 추가하십시오 ~/.profile.

export VULTR_API_KEY=YOUR_API_KEY_HERE

바둑 프로그램 만들기

다음 코드 조각을 각각이라는 새 파일에 붙여 넣습니다 main.go. 전체 파일도 다운로드 할 수 있습니다 .

패키지를 설정하고 필요한 라이브러리를 가져 오십시오.

package main

import (
    "context"
    "log"
    "os"
    "time"

    "github.com/vultr/govultr"
)

main()기능을 시작하십시오 .

func main() {

API 키 환경 변수를 읽으십시오.

var (
    // Get our Vultr API Key from an environment variable.
    VultrAPIKey = os.Getenv("VULTR_API_KEY")
)

Vultr 클라이언트를 작성하십시오.

// Create a Vultr client with our API Key.
vultr := govultr.NewClient(nil, VultrAPIKey)

오브젝트 스토리지를 작성할 위치를 지정하십시오. 클러스터 위치를 검색하고 사용 가능한 위치를 확인한 후 클러스터를 선택하여 표시하십시오.

// Find the clusters we can create our Object Storage in.
clusters, err := vultr.ObjectStorage.ListCluster(ctx)
if err != nil {
    log.Fatalf("Error listing clusters: %s", err)
}

// Verify there's at least one cluster.
if len(clusters) < 1 {
    log.Fatal("Could not find any clusters to create our Object Storage")
}

// Choose the first cluster, and print it.
cluster := clusters[0]
log.Printf("Chosen cluster: %+v", cluster)

선택된 클러스터에서 오브젝트 스토리지를 작성하십시오.

// Create our Object Storage in the first cluster listed with our custom label.
label := "my-object-storage"
storageID, err := vultr.ObjectStorage.Create(ctx, cluster.ObjectStoreClusterID, label)
if err != nil {
    log.Fatalf("Error creating storage: %s", err)
}

log.Printf("Created our Object Storage with the ID: %d", storageID.ID)

오브젝트 스토리지가 활성화 될 때까지 기다리십시오.

var storage govultr.ObjectStorage

// Query the API every five seconds to until our server is ready.
for {
    // List all of the Object Storage containers with our label and include the S3 credentials.
    list, err := vultr.ObjectStorage.List(ctx, &govultr.ObjectListOptions{
        Label:     label,
        IncludeS3: true,
    })
    if err != nil {
        log.Fatalf("Error listing storage with label \"%s\": %s", label, err)
    }

    // Make sure we found one (and only one) Object Storage container.
    if len(list) != 1 {
        log.Fatalf("%d object storage containers exist with the label \"%s\"; we need 1", len(list), label)
    }

    storage = list[0]

    // If the server is active, break out of this loop.
    if storage.Status == "active" {
        break
    }

    // Wait for five seconds before querying the API again.
    log.Printf("The Object Storage's status is currently \"%s\", waiting for another five seconds to check if it's \"active\".", storage.Status)
    time.Sleep(time.Second * 5)
}

엔드 포인트 이름 및 연결 신임 정보를 표시하십시오.

// Print the information of our new Object Storage.
log.Print("Successfully created and listed our Object Storage!")
log.Printf("Object Storage: %+v", storage)

// We also have S3 credentials here now, so we could open an S3 compatible client.
log.Printf("S3 credentials: %s - %s - %s", storage.S3Hostname, storage.S3AccessKey, storage.S3SecretKey)

메인 기능을 종료하십시오.

// end main()
}

완료된 main.go파일을 저장하고 실행 하십시오.

go run main.go

출력 예

2020/03/03 13:05:48 Chosen cluster: {ObjectStoreClusterID:2 RegionID:1 Location:New Jersey Hostname:ewr1.vultrobjects.com Deploy:yes}
2020/03/03 13:05:48 Created our Object Storage with the ID: xxxxxxxx
2020/03/03 13:05:49 The Object Storage's status is currently pending, waiting for another five seconds to check if it's active.
2020/03/03 13:06:06 Object Storage: {ID:34214512 DateCreated:2020-03-03 13:05:47 ObjectStoreClusterID:2 RegionID:1 Location:New Jersey Label:my-object-storage Status:active S3Keys:{S3Hostname:ewr1.vultrobjects.com S3AccessKey:[REDACTED ACCESS KEY] S3SecretKey:[REDACTED SECRET KEY]}}
2020/03/03 13:06:06 S3 credentials: ewr1.vultrobjects.com - [REDACTED ACCESS KEY] - [REDACTED SECRET KEY]

이 예에서 엔드 포인트 이름은 ewr1.vultrobjects.com이며 키는 수정되었습니다. Go 프로그램에 표시된 엔드 포인트 이름, 액세스 키 및 비밀 키를 사용하여 S3 호환 클라이언트로 새 오브젝트 스토리지에 액세스하십시오.



Leave a Comment

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.