Увод
Предуслови
Креирање складишта објеката са Вултр Го клијентом
Креирајте фасциклу пројекта
Иницијализујте модул
Преузмите библиотеку
Подесите променљиву окружења АПИ кључа
Креирајте програм Го
Пример излаза
Увод
Овај водич објашњава како да креирате Вултр Објецт Стораге у вашој Го апликацији са Вултр Го клијентом . Вултр Објецт Стораге је компатибилан са С3 АПИ-јем.
Предуслови
- Рачунар који користи Виндовс, Линук или мацОС са инсталираним Го 1.12+.
- Основно знање програмирања.
- Опционо: ИДЕ који подржава Го (на пример Висуал Студио Цоде, емацс или Атом).
Креирање складишта објеката са Вултр Го клијентом
Вултр Иди клијент се користи за интеракцију са Вултр АПИ . Вултр АПИ вам омогућава да контролишете ресурсе повезане са вашим налогом, укључујући Вултр Објецт Стораге. Детаљне информације о Вултр Го клијенту доступне су у
овом чланку .
Креирајте фасциклу пројекта
Креирајте фасциклу у тренутном директоријуму.
$ mkdir vultr_demo
Унесите нови фолдер.
$ cd vultr_demo
Иницијализујте модул
$ go mod init vultr_demo
Преузмите библиотеку
$ go get github.com/vultr/govultr
Подесите променљиву окружења АПИ кључа
Подесите променљиву окружења ВУЛТР_АПИ_КЕИ на свој АПИ кључ. Ваш АПИ кључ се налази овде: хттпс : //ми.вултр.цом/сеттингс/#сеттингсапи
Упозорење: Заштитите свој АПИ кључ као што бисте заштитили своју лозинку. АПИ кључ има приступ целом налогу, укључујући обрачун, сервере и складиште.
На пример, на Убунту Линук-у, додајте ову линију у ~/.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() {
Прочитајте променљиву окружења АПИ кључа.
var (
// Get our Vultr API Key from an environment variable.
VultrAPIKey = os.Getenv("VULTR_API_KEY")
)
Креирајте Вултр клијента.
// 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]
У овом примеру, име крајње тачке је евр1.вултробјецтс.цом, а кључеви су редиговани. Приступите свом новом складишту објеката са било којим С3 компатибилним клијентом користећи назив крајње тачке, приступни кључ и тајни кључ који приказује ваш Го програм.