Prezantimi
Parakushtet
Krijimi i ruajtjes së objekteve me klientin Vultr Go
Krijoni dosjen e projektit
Inicializoni modulin
Shkarkoni Bibliotekën
Cakto variablin e mjedisit kyç të API
Krijoni programin Go
Shembull Output
Prezantimi
Ky udhëzues shpjegon se si të krijoni Vultr Object Storage në aplikacionin tuaj Go me klientin Vultr Go . Vultr Object Storage është në përputhje me S3 API.
Parakushtet
- Një kompjuter me Windows, Linux ose macOS me Go 1.12+ të instaluar.
- Njohuri bazë për programim.
- Opsionale: Një IDE që mbështet Go (për shembull Visual Studio Code, emacs ose Atom).
Krijimi i ruajtjes së objekteve me klientin Vultr Go
Klienti Vultr Go është përdorur për të bashkëvepruar me API Vultr . API Vultr ju lejon të kontrolloni burimet e lidhura me llogarinë tuaj, duke përfshirë ruajtjen e objekteve Vultr. Informacioni i detajuar mbi klientin Vultr Go është i disponueshëm në
këtë artikull .
Krijoni dosjen e projektit
Krijo dosjen në drejtorinë aktuale.
$ mkdir vultr_demo
Futni dosjen e re.
$ cd vultr_demo
Inicializoni modulin
$ go mod init vultr_demo
Shkarkoni Bibliotekën
$ go get github.com/vultr/govultr
Cakto variablin e mjedisit kyç të API
Cakto variablin e mjedisit VULTR_API_KEY në çelësin tënd API. Çelësi juaj API gjendet këtu: https://my.vultr.com/settings/#settingsapi
Paralajmërim: Mbroni çelësin tuaj API ashtu siç do të mbroni fjalëkalimin tuaj. Çelësi API ka qasje në të gjithë llogarinë tuaj, duke përfshirë faturimin, serverët dhe hapësirën ruajtëse.
Për shembull, në Ubuntu Linux, shtoni këtë linjë në ~/.profile.
export VULTR_API_KEY=YOUR_API_KEY_HERE
Krijoni programin Go
Ngjitni secilin nga fragmentet e kodit të mëposhtëm në një skedar të ri me emrin main.go. Skedari i plotë është gjithashtu i disponueshëm për shkarkim .
Konfiguro paketën dhe importo bibliotekat e kërkuara.
package main
import (
"context"
"log"
"os"
"time"
"github.com/vultr/govultr"
)
Filloni main()funksionin.
func main() {
Lexoni variablin e mjedisit kyç API.
var (
// Get our Vultr API Key from an environment variable.
VultrAPIKey = os.Getenv("VULTR_API_KEY")
)
Krijo klientin Vultr.
// Create a Vultr client with our API Key.
vultr := govultr.NewClient(nil, VultrAPIKey)
Specifikoni një vendndodhje për të krijuar hapësirën ruajtëse të objekteve. Merrni vendndodhjet e grupimeve, verifikoni që një është i disponueshëm, zgjidhni një grup dhe shfaqeni atë.
// 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)
Krijoni hapësirën ruajtëse të objekteve në grupin e zgjedhur.
// 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)
Prisni derisa ruajtja e objekteve të jetë aktive.
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)
}
Shfaq emrin e pikës fundore dhe kredencialet e lidhjes.
// 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)
Mbyllni funksionin kryesor.
// end main()
}
Ruani dhe ekzekutoni main.goskedarin e përfunduar .
go run main.go
Shembull Output
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]
Në këtë shembull, emri i pikës fundore është ewr1.vultrobjects.com dhe çelësat janë redaktuar. Hyni në ruajtjen e objektit tuaj të ri me çdo klient të pajtueshëm S3 duke përdorur emrin e pikës fundore, çelësin e hyrjes dhe çelësin sekret të treguar nga programi juaj Go.