MinIO: Łączenie Python z MinIO

Ta dokumentacja jest częścią przewodnika Pierwsze kroki. Pełny przewodnik znajdziesz tutaj: Jak rozpocząć korzystanie z MinIO do przechowywania obiektów zgodnych z S3.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie MinIO Object Storage, które zapewnia wiele korzyści, w tym:

  • Nieograniczone transfery.
  • Proste, przewidywalne i przejrzyste ceny.
  • Dostosowywalna nazwa domeny zabezpieczona HTTPS (na przykład, https://object-storage.twoja-firma.com).
  • Bezproblemowe aktualizacje za jednym kliknięciem.
  • Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
  • Dostępne w 🇪🇺 Europie i 🇺🇸 USA.

Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie hostingowe MinIO Object Storage Stackhero!

Istnieją dwa główne sposoby łączenia aplikacji Python z MinIO.

Najpierw zainstaluj pakiet AWS SDK (boto3):

pip install boto3
pip freeze > requirements.txt

Poniższy przykład pokazuje, jak połączyć się z MinIO za pomocą boto3:

#!/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')

# Prześlij lokalny plik '/home/john/piano.mp3' do bucketu 'songs' z nazwą obiektu 'piano.mp3'
s3.Bucket('songs').upload_file('/home/john/piano.mp3', 'piano.mp3')

# Pobierz obiekt 'piano.mp3' z bucketu 'songs' i zapisz go lokalnie jako '/tmp/classical.mp3'
s3.Bucket('songs').download_file('piano.mp3', '/tmp/classical.mp3')

print("'piano.mp3' downloaded as 'classical.mp3'.")

Więcej szczegółów można znaleźć w dokumentacji Python MinIO.

Alternatywnie, można użyć SDK MinIO dla Python. Najpierw zainstaluj pakiet MinIO:

pip install minio
pip freeze > requirements.txt

Poniżej znajduje się przykład pokazujący, jak połączyć się z MinIO za pomocą SDK MinIO:

#!/usr/bin/env python
from minio import Minio
from minio.error import S3Error

def main():
  # Utwórz klienta dla swojego serwera MinIO, używając kluczy dostępu i sekretu
  client = Minio(
    endpoint='<XXXXXX>.stackhero-network.com:443',
    secure=True,
    access_key='YOUR_ACCESS_KEY',
    secret_key='YOUR_SECRET_KEY'
  )

  # Sprawdź, czy bucket 'asiatrip' istnieje, i utwórz go, jeśli nie istnieje
  found = client.bucket_exists("asiatrip")
  if not found:
    client.make_bucket("asiatrip")
  else:
    print("Bucket 'asiatrip' already exists")

  # Prześlij '/home/user/Photos/asiaphotos.zip' jako 'asiaphotos-2015.zip' do bucketu 'asiatrip'
  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)

Więcej informacji można znaleźć w dokumentacji SDK Python MinIO.