Създаване на хранилище за обекти Vultr с Vultr Go Client

Въведение

Това ръководство обяснява как да създадете Vultr Object Storage във вашето приложение Go с клиента Vultr Go . Vultr Object Storage е съвместим с API на S3.

Предпоставки

  • Компютър с Windows, Linux или macOS с инсталиран Go 1.12+.
  • Основни познания по програмиране.
  • По избор: IDE, поддържаща Go (например Visual Studio Code, emacs или Atom).

Създаване на обектно съхранение с Vultr Go Client

На клиента Vultr Go се използва за взаимодействие с API Vultr . 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

Създайте програмата Go

Поставете всеки от следните кодови фрагменти в нов файл с име 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 и ключовете са редактирани. Достъп до новото си хранилище за обекти с всеки клиент, съвместим със S3, като използвате името на крайната точка, ключа за достъп и секретния ключ, показани от вашата програма Go.


Как да инсталирате Golang 1.8.3 на CentOS 7, Ubuntu 16.04 и Debian 9

Как да инсталирате Golang 1.8.3 на CentOS 7, Ubuntu 16.04 и Debian 9

Golang е език за програмиране, разработен от Google. Благодарение на своята гъвкавост, простота и надеждност, Golang се превърна в един от най-популярните

Инсталиране на Golang на Ubuntu 14.04

Инсталиране на Golang на Ubuntu 14.04

Golang е език за програмиране, разработен от Google, който ще запази традициите на C, но се фокусира върху простотата и безопасността. Той се превърна в популярен език

Как да инсталирате Golang 1.13 на CentOS 8, Ubuntu 18.04, Debian 10 и Fedora 31

Как да инсталирате Golang 1.13 на CentOS 8, Ubuntu 18.04, Debian 10 и Fedora 31

Go (известен също като Golang) е статично въведен, компилиран, C-подобен език за програмиране, разработен от Google. Простотата и гъвкавостта на Gos го направиха до b

Nginx Reverse Proxy и Настройка на Golang във FreeBSD

Nginx Reverse Proxy и Настройка на Golang във FreeBSD

Изисквания Основни познания по UNIX. FreeBSD x64 с инсталиран Nginx. Инструменти за инсталиране Ще ви трябват няколко програми, които не се доставят с FreeBSD. Ru

Как да инсталирате Golang 1.8 на Ubuntu 16.04

Как да инсталирате Golang 1.8 на Ubuntu 16.04

Go (Golang) е модерен език за програмиране, разработен в Google и фокусиран върху простотата и безопасността. Той се превърна в популярен език, използван за сървърна страна

Създаване на хранилище за обекти Vultr с Vultr Go Client

Създаване на хранилище за обекти Vultr с Vultr Go Client

Въведение Това ръководство обяснява как да създадете Vultr Object Storage във вашето Go приложение с клиента Vultr Go. Vultr Object Storage е съвместим с остроумие

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече