MinIO: Connessione di Python a MinIO

Questa documentazione fa parte della guida Iniziare. Consulta la guida completa qui: Come iniziare a utilizzare MinIO per lo storage di oggetti compatibile con S3.

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una piattaforma MinIO Object Storage pronta all'uso, progettata per garantire affidabilità e velocità. I principali vantaggi includono:

  • Trasferimenti illimitati senza costi nascosti.
  • Prezzi semplici, prevedibili e trasparenti.
  • Un nome di dominio personalizzato protetto da HTTPS (ad esempio, https://object-storage.your-company.com).
  • Aggiornamenti fluidi con un solo clic, senza necessità di interventi manuali.
  • Elevata performance e sicurezza su infrastruttura privata e dedicata.
  • Disponibile sia nelle regioni 🇪🇺 Europa che 🇺🇸 USA.

Ottimizzate il vostro workflow e riducete i tempi di configurazione: potete attivare l'hosting MinIO Object Storage di Stackhero in soli 5 minuti.

Ci sono due modi principali per connettere applicazioni Python a MinIO.

Per prima cosa, installa il pacchetto AWS SDK (boto3):

pip install boto3
pip freeze > requirements.txt

Il seguente esempio dimostra come connettersi a MinIO utilizzando 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')

# Carica un file locale '/home/john/piano.mp3' nel bucket 'songs' con il nome oggetto 'piano.mp3'
s3.Bucket('songs').upload_file('/home/john/piano.mp3', 'piano.mp3')

# Scarica l'oggetto 'piano.mp3' dal bucket 'songs' e salvalo localmente come '/tmp/classical.mp3'
s3.Bucket('songs').download_file('piano.mp3', '/tmp/classical.mp3')

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

Maggiori dettagli sono disponibili nella documentazione Python di MinIO.

In alternativa, puoi utilizzare il SDK MinIO per Python. Per prima cosa, installa il pacchetto MinIO:

pip install minio
pip freeze > requirements.txt

Di seguito è riportato un esempio che mostra come connettersi a MinIO utilizzando il SDK MinIO:

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

def main():
  # Crea un client per il tuo server MinIO utilizzando le tue chiavi di accesso e segrete
  client = Minio(
    endpoint='<XXXXXX>.stackhero-network.com:443',
    secure=True,
    access_key='YOUR_ACCESS_KEY',
    secret_key='YOUR_SECRET_KEY'
  )

  # Verifica se il bucket 'asiatrip' esiste, e crealo se non esiste
  found = client.bucket_exists("asiatrip")
  if not found:
    client.make_bucket("asiatrip")
  else:
    print("Bucket 'asiatrip' already exists")

  # Carica '/home/user/Photos/asiaphotos.zip' come 'asiaphotos-2015.zip' nel bucket '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)

Per ulteriori informazioni, consulta la documentazione del SDK Python di MinIO.