Im Allgemeinen sollten alle AWS SDKs gut mit unserem Object Storage funktionieren. Im Folgenden finden Sie ein paar Beispiele für Python und Go.
Beachten Sie, dass diese Beispiele nur zur Einstiegshilfe gedacht sind. Wir können jedoch nicht garantieren, dass alles uneingeschränkt funktioniert, und bieten dafür KEINEN Support an.
Der Artikel enthält die folgenden Beispiele:
Python
Go
Für Python
AWS SDK für Python Boto3
import logging
import random
import string
from boto3 import client
# Zufällige Zeichenfolge generieren
def random_hash(length=8):
return ''.join(random.choices(string.ascii_lowercase + string.digits, k=length))
# Bucket-Namen mit zufälliger Zeichenfolge als Variable festlegen
VAR_BUCKET_NAME = f"my-bucket-{random_hash()}"
# Einen neuen S3-Client erstellen
s3 = client(
"s3",
region_name="fsn1",
endpoint_url="https://fsn1.your-objectstorage.com",
aws_access_key_id="YOUR_ACCESS_KEY",
aws_secret_access_key="YOUR_SECRET_KEY",
)
# Einen neuen Bucket erstellen
s3.create_bucket(Bucket=VAR_BUCKET_NAME)
logging.info(f"created Bucket: {VAR_BUCKET_NAME}")
# Ein kleines Objekt hochladen
s3.put_object(
Bucket=VAR_BUCKET_NAME,
Key="my-object",
Body="""
# Mein Objekt
Dieser Markdown-Text ist der Inhalt meines Objekts.
""",
)
logging.info("created object")
Für Go
MinIO Go Client SDK
package main
import (
"context"
"crypto/rand"
"encoding/hex"
"fmt"
"log"
"strings"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
// Zufällige Zeichenfolge generieren
func generateRandomHash(length int) string {
bytes := make([]byte, length)
_, err := rand.Read(bytes)
if err != nil {
log.Fatalf("Failed to generate random hash: %v", err)
}
return hex.EncodeToString(bytes)[:length]
}
func main() {
ctx := context.Background()
// Bucket-Namen mit zufälliger Zeichenfolge als Variable festlegen
VAR_BUCKET_NAME := fmt.Sprintf("my-bucket-%s", generateRandomHash(8))
// Einen neuen S3-Client erstellen
client, err := minio.New("fsn1.your-objectstorage.com", &minio.Options{
Secure: true,
Creds: credentials.NewStaticV4(
"YOUR-ACCESS-KEY",
"YOUR-SECRET-KEY",
"",
),
})
if err != nil {
log.Fatal(err)
}
// Einen neuen Bucket erstellen
err = client.MakeBucket(ctx, VAR_BUCKET_NAME, minio.MakeBucketOptions{Region: "fsn1"})
if err != nil {
log.Fatal(err)
}
log.Printf("Created Bucket: %s", VAR_BUCKET_NAME)
// Ein kleines Objekt hochladen
body := strings.NewReader(strings.TrimSpace(`
# Mein Objekt
Dieser Markdown-Text ist der Inhalt meines Objekts.
`))
_, err = client.PutObject(ctx,
VAR_BUCKET_NAME,
"my-object",
body,
body.Size(),
minio.PutObjectOptions{},
)
if err != nil {
log.Fatal(err)
}
log.Println("Created object")
}
AWS SDK für Go v2
package main
import (
"context"
"crypto/rand"
"encoding/hex"
"fmt"
"log"
"strings"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/credentials"
"github.com/aws/aws-sdk-go-v2/service/s3"
)
// Zufällige Zeichenfolge generieren
func generateRandomHash(length int) string {
bytes := make([]byte, length)
_, err := rand.Read(bytes)
if err != nil {
log.Fatalf("Failed to generate random hash: %v", err)
}
return hex.EncodeToString(bytes)[:length]
}
func main() {
ctx := context.Background()
// Bucket-Namen mit zufälliger Zeichenfolge als Variable festlegen
VAR_BUCKET_NAME := fmt.Sprintf("my-bucket-%s", generateRandomHash(8))
// Einen neuen S3-Client erstellen
client := s3.New(s3.Options{
AppID: "my-application/0.0.1",
Region: "fsn1",
BaseEndpoint: aws.String("https://fsn1.your-objectstorage.com"),
Credentials: credentials.StaticCredentialsProvider{Value: aws.Credentials{
AccessKeyID: "YOUR-ACCESS-KEY",
SecretAccessKey: "YOUR-SECRET-KEY",
}},
})
// Einen neuen Bucket erstellen
_, err := client.CreateBucket(ctx, &s3.CreateBucketInput{
Bucket: aws.String(VAR_BUCKET_NAME),
})
if err != nil {
log.Fatal(err)
}
log.Printf("Created Bucket: %s", VAR_BUCKET_NAME)
// Ein kleines Objekt hochladen
body := strings.NewReader(strings.TrimSpace(`
# Mein Objekt
Dieser Markdown-Text ist der Inhalt meines Objekts.
`))
_, err = client.PutObject(ctx, &s3.PutObjectInput{
Bucket: aws.String(VAR_BUCKET_NAME),
Key: aws.String("my-object-e9be8f5c"),
ContentType: aws.String("text/markdown"),
Body: body,
})
if err != nil {
log.Fatal(err)
}
log.Println("Created object")
}