MinIO: Conectando Python a MinIO

Esta documentación forma parte de la guía Comenzando. Consulte la guía completa aquí: Cómo empezar a usar MinIO para almacenamiento de objetos compatible con S3.

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución MinIO Object Storage lista para usar que proporciona una serie de beneficios, incluyendo:

  • Transferencias ilimitadas.
  • Precios simples, predictivos y transparentes.
  • Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://object-storage.tu-empresa.com).
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta impulsados por una VM privada y dedicada.
  • Disponible en 🇪🇺 Europa y 🇺🇸 USA.

Ahorre tiempo y simplifique su vida: ¡solo toma 5 minutos probar la solución de alojamiento MinIO Object Storage de Stackhero!

Hay dos formas principales de conectar aplicaciones Python a MinIO.

Primero, instale el paquete AWS SDK (boto3):

pip install boto3
pip freeze > requirements.txt

El siguiente ejemplo demuestra cómo conectarse a MinIO usando 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')

# Subir un archivo local '/home/john/piano.mp3' al bucket 'songs' con el nombre de objeto 'piano.mp3'
s3.Bucket('songs').upload_file('/home/john/piano.mp3', 'piano.mp3')

# Descargar el objeto 'piano.mp3' del bucket 'songs' y guardarlo localmente como '/tmp/classical.mp3'
s3.Bucket('songs').download_file('piano.mp3', '/tmp/classical.mp3')

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

Más detalles están disponibles en la documentación de Python de MinIO.

Alternativamente, puede usar el SDK de MinIO para Python. Primero, instale el paquete MinIO:

pip install minio
pip freeze > requirements.txt

A continuación se muestra un ejemplo que muestra cómo conectarse a MinIO usando el SDK de MinIO:

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

def main():
  # Cree un cliente para su servidor MinIO usando sus claves de acceso y secretas
  client = Minio(
    endpoint='<XXXXXX>.stackhero-network.com:443',
    secure=True,
    access_key='YOUR_ACCESS_KEY',
    secret_key='YOUR_SECRET_KEY'
  )

  # Verifique si el bucket 'asiatrip' existe, y créelo si no existe
  found = client.bucket_exists("asiatrip")
  if not found:
    client.make_bucket("asiatrip")
  else:
    print("Bucket 'asiatrip' already exists")

  # Suba '/home/user/Photos/asiaphotos.zip' como 'asiaphotos-2015.zip' al 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)

Para más información, consulte la documentación del SDK de Python de MinIO.