Εισαγωγή
Προαπαιτούμενα
Δημιουργία αποθήκευσης αντικειμένων με τον πελάτη Vultr Go
Δημιουργήστε το φάκελο Project
Αρχικοποιήστε τη μονάδα
Κατεβάστε τη Βιβλιοθήκη
Ορίστε τη μεταβλητή περιβάλλοντος κλειδιού API
Δημιουργήστε το πρόγραμμα Go
Παράδειγμα εξόδου
Εισαγωγή
Αυτός ο οδηγός εξηγεί πώς να δημιουργήσετε Vultr Object Storage στην εφαρμογή Go σας με τον πελάτη Vultr Go . Το Vultr Object Storage είναι συμβατό με το S3 API.
Προαπαιτούμενα
- Ένας υπολογιστής με Windows, Linux ή macOS με εγκατεστημένο το Go 1.12+.
- Βασικές γνώσεις προγραμματισμού.
- Προαιρετικό: Ένα IDE που υποστηρίζει το Go (για παράδειγμα Visual Studio Code, emacs ή Atom).
Δημιουργία αποθήκευσης αντικειμένων με τον πελάτη Vultr Go
Ο πελάτης Vultr Go χρησιμοποιείται για αλληλεπίδραση με το Vultr API . Το Vultr API σάς επιτρέπει να ελέγχετε τους πόρους που σχετίζονται με τον λογαριασμό σας, συμπεριλαμβανομένου του Vultr Object Storage. Λεπτομερείς πληροφορίες για το πρόγραμμα-πελάτη Vultr Go είναι διαθέσιμες σε
αυτό το άρθρο .
Δημιουργήστε το φάκελο Project
Δημιουργήστε το φάκελο στον τρέχοντα κατάλογο.
$ 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 σας.