Zum Hauptinhalt springen
Version: 1.99.x (Q3 26)

Object Storage

Object Storage stellt eine S3-kompatible API für Dateien, Backups, Assets und andere unstrukturierte Daten bereit. Es ist für Workloads gedacht, die bucket-basierten Objektspeicher benötigen, anstatt eines Dateisystems oder einer relationalen Datenbank.

EigenschaftWertHinweise
Provider-Names3Wird in Landscape-Provider-Definitionen verwendet.
Versionv1Aktuelle, vom Provider bereitgestellte Schema-Version.
KategorieStorageWird im Managed-Services-Katalog angezeigt.
GeltungsbereichglobalSteht auf Team-Ebene zur Verfügung, statt an eine einzelne Workspace-Runtime gebunden zu sein.
Team-SingletonfalseTeams können mehrere Object-Storage-Service-Instanzen erstellen.
Pause-UnterstützungfalseDieser Provider unterstützt das Pausieren nicht.
Preview-Feature

Dieser Provider ist derzeit ein Preview-Feature. Es ist standardmäßig nicht aktiviert und muss von deinem Operator aktiviert werden. Als Preview befindet sich der Provider noch in der Weiterentwicklung – Schema, Pläne und Verhalten können sich in Zukunft ändern.

Funktionsumfang​

Der Service ist hochverfügbar: Der zugrunde liegende Ceph-Speicher ist redundant aufgesetzt und wird auf Storage-Ebene repliziert.

Noch keine Backups

Automatisierte Backups der gespeicherten Daten sind für diesen Provider noch nicht verfügbar. Bis dahin bist du selbst dafür verantwortlich, wichtige Daten zu sichern.

Schema​

Config​

FeldTypErforderlich bei ErstellungHinweise
accessKeystringJaClusterweit eindeutiger Access Key. Muss genau 20 Großbuchstaben oder Ziffern umfassen.
userDisplayNamestringNeinStandard: My S3 User. Freundliche Bezeichnung für den erzeugten Benutzer.
initialBucketNamestringJaClusterweit eindeutiger Name des initialen Buckets. Ist er bereits vergeben, wird der Bucket nicht erstellt.

Secrets​

FeldTypErforderlich bei ErstellungHinweise
secretKeystringJaGeheimer Access Key. Muss genau 40 alphanumerische Zeichen umfassen.

Details / Output​

FeldTypVerfügbarkeitHinweise
urlstringNach der Bereitstellung verfügbarS3-kompatible Endpunkt-URL. Bei von Codesphere verwaltetem S3 ist dies immer http://rgw-load-balancer.rook-ceph.svc.cluster.local.
userIdstringNach der Bereitstellung verfügbarInterne Kennung des erzeugten Object-Storage-Benutzers.

Plan​

Der Provider stellt einen Plan bereit, Generic (id: 0), bei dem alle Quotenparameter angepasst werden können. Beispielplan: Generic (id: 0).

ParameterTypStandardMinimumMaximumStatischHinweise
maxBucketsinteger5011000NeinMaximale Anzahl an Buckets.
maxObjectsinteger100000110000000NeinMaximale Anzahl an Objekten.
maxSizeKbinteger10000000110000000000NeinGesamtgrößenlimit in KB.
maxReadOpsPerSinteger1000110000NeinMaximale Leseoperationen pro Sekunde.
maxWriteOpsPerSinteger1000110000NeinMaximale Schreiboperationen pro Sekunde.
maxReadBytesPerSinteger100000000110000000000NeinMaximaler Lesedurchsatz in Byte pro Sekunde.
maxWriteBytesPerSinteger100000000110000000000NeinMaximaler Schreibdurchsatz in Byte pro Sekunde.

Beispiel in einer Landscape​

schemaVersion: v0.2

run:
uploads:
provider:
name: s3
version: v1
plan:
id: 0
parameters:
maxBuckets: 50
maxObjects: 100000
maxSizeKb: 10000000
maxReadOpsPerS: 1000
maxWriteOpsPerS: 1000
maxReadBytesPerS: 100000000
maxWriteBytesPerS: 100000000
config:
accessKey: "${{ workspace.env.S3_ACCESS_KEY }}"
userDisplayName: "Landscape Upload User"
initialBucketName: "${{ workspace.env.S3_BUCKET }}"
secrets:
secretKey: "${{ vault.s3SecretKey }}"

Konfiguriere innerhalb anderer Runtimes deinen S3-Client mit der zurückgegebenen url, dem konfigurierten accessKey und dem gespeicherten secretKey. Bei von Codesphere verwaltetem S3 ist der Endpunkt immer http://rgw-load-balancer.rook-ceph.svc.cluster.local. Derselbe S3-kompatible Endpunkt steht auch von anderen Codesphere-Runtimes aus zur Verfügung, einschließlich Reactives, Managed Containers und Workloads innerhalb eines Virtual Clusters.

Verbindung zu einem Object Store herstellen​

Voraussetzungen​

Sobald dein Object Store bereitgestellt ist, kannst du dich von deinen Codesphere Workspaces aus damit verbinden. Jeder Service listet nicht-sensible Verbindungsdetails auf der jeweiligen Einstellungsseite im Overview-Tab (bzw. im Attribut details im Public-API-Payload).

info

Stelle vor dem Verbinden sicher, dass der Service synchronisiert ist.

Verbindung über das Terminal (mc)​

Der MinIO Client (mc) ist ein robustes Tool für die Interaktion mit S3-kompatiblen APIs.

# mc installieren
nix-env -iA nixpkgs.minio-client

# Alias konfigurieren
mc alias set my-storage http://rgw-load-balancer.rook-ceph.svc.cluster.local "$ACCESS_KEY" "$SECRET_KEY"

# Buckets auflisten
mc ls my-storage

# Datei kopieren
mc cp myfile.txt my-storage/my-bucket/

Verbindung über Node.js​

Mit dem AWS SDK für JavaScript v3 (@aws-sdk/client-s3):

const { S3 } = require("@aws-sdk/client-s3");

const s3 = new S3({
endpoint: "http://rgw-load-balancer.rook-ceph.svc.cluster.local",
region: "us-east-1",
credentials: {
accessKeyId: "YOUR_ACCESS_KEY",
secretAccessKey: "YOUR_SECRET_KEY"
},
forcePathStyle: true,
tls: false
});

const { Buckets } = await s3.listBuckets({});
console.log(Buckets);