Створення сховища об’єктів Vultr за допомогою клієнта Vultr Go

Вступ

У цьому посібнику пояснюється, як створити сховище об’єктів Vultr у вашій програмі Go за допомогою клієнта Vultr Go . Vultr Object Storage сумісна з API S3.

Передумови

  • Комп’ютер під керуванням Windows, Linux або macOS із встановленою Go 1.12+.
  • Базові знання програмування.
  • Додатково: IDE з підтримкою Go (наприклад, Visual Studio Code, emacs або Atom).

Створення об’єктного сховища за допомогою клієнта Vultr Go

Клієнт Vultr Go використовується для взаємодії з API Vultr . API Vultr дозволяє вам керувати ресурсами, пов’язаними з вашим обліковим записом, включаючи 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 на 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 зробили його б

Налаштування зворотного проксі Nginx і Golang на FreeBSD

Налаштування зворотного проксі Nginx і 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

Створення сховища об’єктів Vultr за допомогою клієнта Vultr Go

Вступ У цьому посібнику пояснюється, як створити Vultr Object Storage у вашій програмі Go за допомогою клієнта Vultr Go. Vultr Object Storage сумісна з дотепністю

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

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. Прочитайте цю статтю, щоб дізнатися більше