Uvod
											
										
																			
											
												Predpogoji
											
										
																			
											
												Ustvarjanje shrambe objektov z odjemalcem Vultr Go
											
										
																			
											
												Ustvarite projektno mapo
											
										
																			
											
												Inicializirajte modul
											
										
																			
											
												Prenesite knjižnico
											
										
																			
											
												Nastavite spremenljivko okolja ključa API
											
										
																			
											
												Ustvarite program Go
											
										
																			
											
												Primer izhoda
											
										
																	
												
Uvod
Ta priročnik pojasnjuje, kako ustvariti Vultr Object Storage v aplikaciji Go z odjemalcem Vultr Go . Vultr Object Storage je združljiv s S3 API.
Predpogoji
- Računalnik z operacijskim sistemom Windows, Linux ali macOS z nameščeno različico Go 1.12+.
- Osnovno znanje programiranja.
- Izbirno: IDE, ki podpira Go (na primer Visual Studio Code, emacs ali Atom).
Ustvarjanje shrambe objektov z odjemalcem Vultr Go
Stranka Vultr Go se uporablja za interakcijo z API Vultr . Vultr API vam omogoča nadzor virov, povezanih z vašim računom, vključno z Vultr Object Storage. Podrobne informacije o odjemalcu Vultr Go so na voljo v
 tem članku .
Ustvarite projektno mapo
Ustvarite mapo v trenutnem imeniku.
$ mkdir vultr_demo
Vnesite novo mapo.
$ cd vultr_demo
Inicializirajte modul
$ go mod init vultr_demo
Prenesite knjižnico
$ go get github.com/vultr/govultr
Nastavite spremenljivko okolja ključa API
Nastavite spremenljivko okolja VULTR_API_KEY na vaš ključ API. Vaš ključ API najdete tukaj: https://my.vultr.com/settings/#settingsapi
Opozorilo: Zaščitite svoj ključ API, kot bi zaščitili svoje geslo. Ključ API ima dostop do celotnega računa, vključno z obračunavanjem, strežniki in shranjevanjem.
Na primer, v Ubuntu Linuxu dodajte to vrstico v ~/.profile.
export VULTR_API_KEY=YOUR_API_KEY_HERE
Ustvarite program Go
Vsak od naslednjih fragmentov kode prilepite v novo datoteko z imenom main.go.  Celotna datoteka je na voljo tudi za prenos .
Nastavite paket in uvozite potrebne knjižnice.
package main
import (
    "context"
    "log"
    "os"
    "time"
    "github.com/vultr/govultr"
)
Začnite main()funkcijo.
func main() {
Preberite spremenljivko okolja ključa API.
var (
    // Get our Vultr API Key from an environment variable.
    VultrAPIKey = os.Getenv("VULTR_API_KEY")
)
Ustvarite odjemalca Vultr.
// Create a Vultr client with our API Key.
vultr := govultr.NewClient(nil, VultrAPIKey)
Določite lokacijo za ustvarjanje shrambe objektov. Pridobite lokacije gruče, preverite, ali je na voljo, izberite gručo in jo prikažite.
// 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)
Ustvarite shrambo objektov v izbrani gruči.
// 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)
Počakajte, da je shramba predmetov 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 ime končne točke in poverilnice za povezavo.
// 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)
Končajte glavno funkcijo.
// end main()
}
Shranite in zaženite dokončano main.godatoteko.
go run main.go
Primer izhoda
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]
V tem primeru je ime končne točke ewr1.vultrobjects.com, ključi pa so popravljeni. Dostopajte do svojega novega pomnilnika objektov s katerim koli odjemalcem, ki je združljiv s S3, z uporabo imena končne točke, dostopnega ključa in skrivnega ključa, ki ga prikaže vaš program Go.