MinIO: Verbindung von Python 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 Hauptmethoden, um Python-Anwendungen mit MinIO zu verbinden.
Verbindung zu MinIO mit dem AWS SDK (boto)
Installieren Sie zuerst das AWS SDK-Paket (boto3):
pip install boto3
pip freeze > requirements.txt
Das folgende Beispiel zeigt, wie man sich mit boto3 mit MinIO verbindet:
#!/usr/bin/env python
import os
import boto3
from botocore.client import Config
s3 = boto3.resource('s3',
endpoint_url='https://<XXXXXX>.stackhero-network.com',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
config=Config(signature_version='s3v4'),
region_name='us-east-1')
# Laden Sie eine lokale Datei '/home/john/piano.mp3' in den Bucket 'songs' mit dem Objektnamen 'piano.mp3' hoch
s3.Bucket('songs').upload_file('/home/john/piano.mp3', 'piano.mp3')
# Laden Sie das Objekt 'piano.mp3' aus dem Bucket 'songs' herunter und speichern Sie es lokal als '/tmp/classical.mp3'
s3.Bucket('songs').download_file('piano.mp3', '/tmp/classical.mp3')
print("'piano.mp3' downloaded as 'classical.mp3'.")
Weitere Details finden Sie in der MinIO Python-Dokumentation.
Verbindung zu MinIO mit dem MinIO SDK
Alternativ können Sie das MinIO SDK für Python verwenden. Installieren Sie zuerst das MinIO-Paket:
pip install minio
pip freeze > requirements.txt
Nachfolgend ein Beispiel, das zeigt, wie man sich mit dem MinIO SDK mit MinIO verbindet:
#!/usr/bin/env python
from minio import Minio
from minio.error import S3Error
def main():
# Erstellen Sie einen Client für Ihren MinIO-Server mit Ihren Zugangs- und Geheimschlüsseln
client = Minio(
endpoint='<XXXXXX>.stackhero-network.com:443',
secure=True,
access_key='YOUR_ACCESS_KEY',
secret_key='YOUR_SECRET_KEY'
)
# Überprüfen Sie, ob der Bucket 'asiatrip' existiert, und erstellen Sie ihn, falls nicht
found = client.bucket_exists("asiatrip")
if not found:
client.make_bucket("asiatrip")
else:
print("Bucket 'asiatrip' already exists")
# Laden Sie '/home/user/Photos/asiaphotos.zip' als 'asiaphotos-2015.zip' in den Bucket 'asiatrip' hoch
client.fput_object(
"asiatrip", "asiaphotos-2015.zip", "/home/user/Photos/asiaphotos.zip"
)
print(
"'/home/user/Photos/asiaphotos.zip' has been successfully uploaded as "
"object 'asiaphotos-2015.zip' to bucket 'asiatrip'."
)
if __name__ == "__main__":
try:
main()
except S3Error as exc:
print("An error occurred.", exc)
Weitere Informationen finden Sie in der MinIO Python SDK-Dokumentation.