Uvod
Preduvjeti
Izrada pohrane objekata s Vultr Go klijentom
Napravite mapu projekta
Inicijalizirajte modul
Preuzmite knjižnicu
Postavite varijablu okruženja ključa API-ja
Kreirajte program Go
Primjer izlaza
Uvod
Ovaj vodič objašnjava kako stvoriti Vultr Object Storage u vašoj Go aplikaciji s Vultr Go klijentom . Vultr Object Storage kompatibilan je sa S3 API-jem.
Preduvjeti
- Računalo sa sustavom Windows, Linux ili macOS s instaliranim Go 1.12+.
- Osnovno znanje programiranja.
- Izborno: IDE koji podržava Go (na primjer Visual Studio Code, emacs ili Atom).
Izrada pohrane objekata s Vultr Go klijentom
Vultr Idi klijent koristi za interakciju s Vultr API . Vultr API omogućuje vam kontrolu resursa povezanih s vašim računom, uključujući Vultr Object Storage. Detaljne informacije o Vultr Go klijentu dostupne su u
ovom članku .
Napravite mapu projekta
Stvorite mapu u trenutnom direktoriju.
$ mkdir vultr_demo
Unesite novu mapu.
$ cd vultr_demo
Inicijalizirajte modul
$ go mod init vultr_demo
Preuzmite knjižnicu
$ go get github.com/vultr/govultr
Postavite varijablu okruženja ključa API-ja
Postavite varijablu okruženja VULTR_API_KEY na svoj API ključ. Vaš API ključ se nalazi ovdje: https://my.vultr.com/settings/#settingsapi
Upozorenje: Zaštitite svoj API ključ kao što biste zaštitili svoju lozinku. API ključ ima pristup cijelom vašem računu, uključujući naplatu, poslužitelje i pohranu.
Na primjer, na Ubuntu Linuxu, dodajte ovaj redak u ~/.profile.
export VULTR_API_KEY=YOUR_API_KEY_HERE
Kreirajte program Go
Zalijepite svaki od sljedećih fragmenata koda u novu datoteku pod nazivom main.go. Cijela datoteka je također dostupna za preuzimanje .
Postavite paket i uvezite potrebne biblioteke.
package main
import (
"context"
"log"
"os"
"time"
"github.com/vultr/govultr"
)
Započnite main()funkciju.
func main() {
Pročitajte varijablu okruženja API ključa.
var (
// Get our Vultr API Key from an environment variable.
VultrAPIKey = os.Getenv("VULTR_API_KEY")
)
Napravite Vultr klijenta.
// Create a Vultr client with our API Key.
vultr := govultr.NewClient(nil, VultrAPIKey)
Odredite mjesto za stvaranje pohrane objekata. Dohvatite lokacije klastera, provjerite je li jedna dostupna, odaberite klaster i prikažite ga.
// 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)
Stvorite pohranu objekata u odabranom klasteru.
// 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)
Pričekajte da pohrana objekata bude aktivna.
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)
}
Prikažite naziv krajnje točke i vjerodajnice veze.
// 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)
Završite glavnu funkciju.
// end main()
}
Spremite i pokrenite dovršenu main.godatoteku.
go run main.go
Primjer izlaza
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]
U ovom primjeru, naziv krajnje točke je ewr1.vultrobjects.com, a ključevi su redigirani. Pristupite svojoj novoj pohrani objekata s bilo kojim S3 kompatibilnim klijentom koristeći naziv krajnje točke, pristupni ključ i tajni ključ koji prikazuje vaš Go program.