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.

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.

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.