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 soluzione MinIO Object Storage pronta all'uso che fornisce numerosi vantaggi, tra cui:
- Trasferimenti illimitati.
- Prezzi semplici, predittivi e trasparenti.
- Nome di dominio personalizzabile sicuro con HTTPS (ad esempio, https://object-storage.tua-azienda.com).
- Aggiornamenti senza sforzo con un solo clic.
- Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.
- Disponibile in 🇪🇺 Europa e 🇺🇸 USA.
Risparmia tempo e semplifica la tua vita: bastano 5 minuti per provare la soluzione di hosting MinIO Object Storage di Stackhero!
Ci sono due modi principali per connettere applicazioni Python a MinIO.
Connessione a MinIO con l'AWS SDK (boto)
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.
Connessione a MinIO con il SDK 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.