การสร้างที่เก็บอ็อบเจ็กต์ Vultr ด้วยไคลเอ็นต์ Vultr Go

บทนำ

คู่มือนี้จะอธิบายวิธีการสร้างการเก็บรักษาวัตถุ Vultrในใบสมัครของคุณไปกับลูกค้า Vultr ไป Vultr Object Storage เข้ากันได้กับ S3 API

ข้อกำหนดเบื้องต้น

  • คอมพิวเตอร์ที่ใช้ Windows, Linux หรือ macOS ที่ติดตั้ง Go 1.12+
  • ความรู้การเขียนโปรแกรมพื้นฐาน
  • ทางเลือก: IDE ที่สนับสนุน Go (เช่น Visual Studio Code, emacs หรือ Atom)

การสร้างที่เก็บข้อมูลวัตถุด้วยไคลเอนต์ Vultr Go

ลูกค้า Vultr ไปใช้ในการโต้ตอบกับVultr API Vultr API ช่วยให้คุณควบคุมทรัพยากรที่เกี่ยวข้องกับบัญชีของคุณรวมถึง Vultr Object Storage ข้อมูลรายละเอียดเกี่ยวกับลูกค้า Vultr ไปมีอยู่ใน บทความนี้

สร้างโฟลเดอร์โครงการ

สร้างโฟลเดอร์ในไดเรกทอรีปัจจุบัน

$ mkdir vultr_demo

เข้าสู่โฟลเดอร์ใหม่

$ cd vultr_demo

เริ่มต้นโมดูล

$ go mod init vultr_demo

ดาวน์โหลด Library

$ 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

สร้างโปรแกรมไป

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)

รอจนกว่า Object Storage จะเปิดใช้งาน

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 ของคุณ



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true