OpenDAL
Greifen Sie aus Anwendungen über die Datenzugriffsschicht Apache OpenDAL auf RustFS-Objekte zu.
In dieser Anleitung verbinden Sie Apache OpenDAL — die einheitliche Datenzugriffsschicht — über den Dienst s3 mit RustFS. Sie betreiben das Python-Binding von OpenDAL gegen RustFS, schreiben und lesen ein Objekt, listen ein Präfix auf und löschen es. Der Ablauf wurde mit dem Python-Paket opendal 0.46 auf python:3.12-slim und rustfs/rustfs-x86-musl:v2.3.1 verifiziert.
Sie benötigen Docker und Python 3.9 oder neuer. OpenDAL unterstützt denselben Dienst s3 aus den Bindings für Rust, Java, Node.js und Go mit gleichwertigen Einstellungen.
Architektur
Ein OpenDAL-Operator, der an den Dienst s3 gebunden ist, stellt eine einheitliche API bereit — write, read, stat, list, delete — über den Bucket. Derselbe Code läuft gegen S3, RustFS oder jeden anderen unterstützten Dienst, wenn Sie die Verbindungseinstellungen ändern.
Das Projekt einrichten
Installieren Sie das Python-Binding:
pip install opendalLegen Sie das Skript an und ersetzen Sie alle Verbindungsplatzhalter:
import opendal
op = opendal.Operator(
"s3",
endpoint="http://<your-rustfs-endpoint>:9000",
bucket="my-bucket",
access_key_id="<your-access-key>",
secret_access_key="<your-secret-key>",
region="us-east-1",
)
op.write("opendal-demo/hello.txt", b"hello from opendal against rustfs")
print("read-back:", op.read("opendal-demo/hello.txt"))
print("content_length:", op.stat("opendal-demo/hello.txt").content_length)
for entry in op.list("opendal-demo/"):
print("listed:", entry.path)
op.delete("opendal-demo/hello.txt")
print("deleted:", not op.exists("opendal-demo/hello.txt"))Die Namen der Zugangsdatenoptionen sind access_key_id und secret_access_key. Die kürzeren Namen access_key existieren nicht und schlagen mit einem Signaturfehler fehl. Pfadbasierte Adressierung (Path-Style) ist der Standard für Endpunkte außerhalb von AWS.
Die Demo ausführen
Führen Sie das Skript von einem Rechner aus, der RustFS erreichen kann:
python opendal_demo.pyread-back: b"hello from opendal against rustfs"
content_length: 33
listed: opendal-demo/hello.txt
deleted: TrueDer Rundlauf übt den vollständigen Objektlebenszyklus: write lädt die Bytes hoch, read holt sie zurück, stat liefert die Objektgröße, list zählt das Präfix auf und delete entfernt das Objekt.
Objekte in RustFS prüfen
Kommentieren Sie die letzte Zeile op.delete aus, führen Sie das Skript erneut aus und listen Sie das Präfix in RustFS auf:
rc ls rustfs/my-bucket/opendal-demo/ -rhello.txt
data/rows.csv
Die in der RustFS-Console sichtbaren Objekte sind genau die Pfade, die die OpenDAL-API geschrieben hat.
Stoppen oder zurücksetzen
OpenDAL ist eine Bibliothek und hält keinen eigenen Zustand. So räumen Sie die Demo-Objekte auf:
rc rm rustfs/my-bucket/opendal-demo/ --recursive --forceFehlerbehebung
failed to load signing credential
Der Operator hat keine verwendbaren Zugangsdaten erhalten. Verwenden Sie die exakten Optionsnamen access_key_id und secret_access_key. Andere Schreibweisen werden stillschweigend ignoriert, und die Signierung schlägt dann fehl.
Verbindungs- oder DNS-Fehler beim Schreiben
Prüfen Sie, dass der Endpunkt Schema und Port enthält und von der Anwendung aus erreichbar ist. Innerhalb eines Compose-Netzwerks lautet der Hostname rustfs. Vom Host aus verwenden Sie http://localhost:9000.
Nächste Schritte
- Lesen Sie die S3-Kompatibilitätshinweise, bevor Sie weitere OpenDAL-Operationen einsetzen.
- Erstellen Sie dedizierte Produktions-Zugangsdaten über die Zugriffsschlüssel-Verwaltung.
- Folgen Sie der OpenDAL-Dokumentation, um denselben Operator aus Rust, Java oder Node.js zu verwenden.