Erstellen eines Vultr-Objektspeichers mit dem Vultr Go-Client

Einführung

In diesem Handbuch wird erläutert, wie Sie mit dem Vultr Go-Client einen Vultr-Objektspeicher in Ihrer Go-Anwendung erstellen . Vultr Object Storage ist mit der S3-API kompatibel.

Voraussetzungen

  • Ein Computer unter Windows, Linux oder MacOS mit installiertem Go 1.12+.
  • Grundlegende Programmierkenntnisse.
  • Optional: Eine IDE, die Go unterstützt (z. B. Visual Studio Code, Emacs oder Atom).

Objektspeicher mit dem Vultr Go Client erstellen

Der Vultr Go-Client wird zur Interaktion mit der Vultr-API verwendet . Mit der Vultr-API können Sie die mit Ihrem Konto verknüpften Ressourcen steuern, einschließlich des Vultr-Objektspeichers. Detaillierte Informationen zum Vultr Go-Client finden Sie in diesem Artikel .

Erstellen Sie den Projektordner

Erstellen Sie den Ordner im aktuellen Verzeichnis.

$ mkdir vultr_demo

Geben Sie den neuen Ordner ein.

$ cd vultr_demo

Initialisieren Sie das Modul

$ go mod init vultr_demo

Laden Sie die Bibliothek herunter

$ go get github.com/vultr/govultr

Legen Sie die Umgebungsvariable für den API-Schlüssel fest

Setzen Sie die Umgebungsvariable VULTR_API_KEY auf Ihren API-Schlüssel. Ihren API-Schlüssel finden Sie hier: https://my.vultr.com/settings/#settingsapi

Warnung: Schützen Sie Ihren API-Schlüssel so, als würden Sie Ihr Passwort schützen. Der API-Schlüssel hat Zugriff auf Ihr gesamtes Konto, einschließlich Abrechnung, Server und Speicher.

Fügen Sie beispielsweise unter Ubuntu Linux diese Zeile hinzu ~/.profile.

export VULTR_API_KEY=YOUR_API_KEY_HERE

Erstellen Sie das Go-Programm

Fügen Sie jedes der folgenden Codefragmente in eine neue Datei mit dem Namen ein main.go. Die vollständige Datei steht auch zum Download zur Verfügung .

Richten Sie das Paket ein und importieren Sie die erforderlichen Bibliotheken.

package main

import (
    "context"
    "log"
    "os"
    "time"

    "github.com/vultr/govultr"
)

Starten Sie die main()Funktion.

func main() {

Lesen Sie die Umgebungsvariable des API-Schlüssels.

var (
    // Get our Vultr API Key from an environment variable.
    VultrAPIKey = os.Getenv("VULTR_API_KEY")
)

Erstellen Sie den Vultr-Client.

// Create a Vultr client with our API Key.
vultr := govultr.NewClient(nil, VultrAPIKey)

Geben Sie einen Speicherort für den Objektspeicher an. Rufen Sie die Cluster-Speicherorte ab, überprüfen Sie, ob einer verfügbar ist, wählen Sie einen Cluster aus und zeigen Sie ihn an.

// 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)

Erstellen Sie den Objektspeicher im ausgewählten 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)

Warten Sie, bis der Objektspeicher aktiv ist.

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)
}

Zeigen Sie den Endpunktnamen und die Verbindungsanmeldeinformationen an.

// 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)

Beenden Sie die Hauptfunktion.

// end main()
}

Speichern Sie die fertige main.goDatei und führen Sie sie aus .

go run main.go

Beispielausgabe

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]

In diesem Beispiel lautet der Endpunktname ewr1.vultrobjects.com, und die Schlüssel werden redigiert. Greifen Sie mit jedem S3-kompatiblen Client auf Ihren neuen Objektspeicher zu, indem Sie den Endpunktnamen, den Zugriffsschlüssel und den geheimen Schlüssel verwenden, die von Ihrem Go-Programm angezeigt werden.



Leave a Comment

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.