MinIO: Verbindung von Go zu MinIO
Diese Dokumentation ist Teil des Erste Schritte-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Wie man mit MinIO für S3-kompatiblen Objektspeicher beginnt.
👋 Willkommen bei der Stackhero-Dokumentation!
Stackhero bietet eine einsatzbereite MinIO Object Storage Lösung, die zahlreiche Vorteile bietet, darunter:
- Unbegrenzte Übertragungen.
- Einfache, vorausschauende und transparente Preisgestaltung.
- Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://object-storage.ihre-firma.com).
- Mühelose Updates mit nur einem Klick.
- Optimale Leistung und robuste Sicherheit durch eine private und dedizierte VM.
- Verfügbar in 🇪🇺 Europa und 🇺🇸 USA.
Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die MinIO Object Storage Hosting Lösung von Stackhero auszuprobieren!
Es gibt zwei Optionen, um Go-Anwendungen mit MinIO zu verbinden.
Verbindung zu MinIO mit dem AWS SDK
Installieren Sie zuerst die AWS SDK-Pakete für Go:
go get github.com/aws/aws-sdk-go-v2
go get github.com/aws/aws-sdk-go-v2/config
Nachfolgend ein Beispiel, wie man sich mit MinIO von Go aus unter Verwendung des AWS SDK verbindet:
package main
import (
"fmt"
"os"
"strings"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
)
func main() {
bucket := aws.String("newbucket")
key := aws.String("testobject")
// Konfigurieren Sie die Nutzung des MinIO-Servers
s3Config := &aws.Config{
Credentials: credentials.NewStaticCredentials("YOUR_ACCESS_KEY", "YOUR_SECRET_KEY", ""),
Endpoint: aws.String("https://<XXXXXX>.stackhero-network.com"),
Region: aws.String("us-east-1"),
DisableSSL: aws.Bool(false),
S3ForcePathStyle: aws.Bool(true),
}
newSession := session.New(s3Config)
s3Client := s3.New(newSession)
cparams := &s3.CreateBucketInput{
Bucket: bucket,
}
// Erstellen Sie einen neuen Bucket
_, err := s3Client.CreateBucket(cparams)
if err != nil {
fmt.Println(err.Error())
return
}
// Laden Sie ein neues Objekt mit dem String "Hello from MinIO!" hoch
_, err = s3Client.PutObject(&s3.PutObjectInput{
Body: strings.NewReader("Hello from MinIO!"),
Bucket: bucket,
Key: key,
})
if err != nil {
fmt.Printf("Failed to upload data to %s/%s, %s\n", *bucket, *key, err.Error())
return
}
fmt.Printf("Successfully created bucket %s and uploaded data with key %s\n", *bucket, *key)
// Rufen Sie unser Objekt ab und speichern Sie es lokal
file, err := os.Create("testobject_local")
if err != nil {
fmt.Println("Failed to create file", err)
return
}
defer file.Close()
downloader := s3manager.NewDownloader(newSession)
numBytes, err := downloader.Download(file,
&s3.GetObjectInput{
Bucket: bucket,
Key: key,
})
if err != nil {
fmt.Println("Failed to download file", err)
return
}
fmt.Println("Downloaded file", file.Name(), numBytes, "bytes")
}
Für weitere Lektüre besuchen Sie die MinIO Go-Dokumentation.
Verbindung zu MinIO mit dem MinIO SDK
Um das MinIO SDK für Go zu verwenden, installieren Sie das folgende Paket:
GO111MODULE=on go get github.com/minio/minio-go/v7
Nachfolgend ein Beispiel, das zeigt, wie man sich mit dem MinIO SDK für Go mit MinIO verbindet:
package main
import (
"log"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func main() {
endpoint := "<XXXXXX>.stackhero-network.com"
accessKeyID := "YOUR_ACCESS_KEY"
secretAccessKey := "YOUR_SECRET_KEY"
useSSL := true
// Initialisieren Sie den MinIO-Client
minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
if err != nil {
log.Fatalln(err)
}
log.Printf("%#v\n", minioClient) // minioClient ist jetzt eingerichtet
}
Für weitere Informationen siehe die MinIO Go SDK-Dokumentation.