MinIO: Conectando Python ao MinIO

Esta documentação faz parte do guia Introdução. Consulte o guia completo aqui: Como começar a usar o MinIO para armazenamento de objetos compatível com S3.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero disponibiliza uma plataforma MinIO Object Storage pronta a usar, concebida para garantir fiabilidade e desempenho. As principais vantagens incluem:

  • Transferências ilimitadas sem custos ocultos.
  • Preços simples, previsíveis e transparentes.
  • Um domínio personalizado protegido por HTTPS (por exemplo, https://object-storage.sua-empresa.com).
  • Atualizações automáticas e sem complicações, com apenas um clique e sem necessidade de intervenção manual.
  • Elevada performance e segurança numa infraestrutura privada e dedicada.
  • Disponível nas regiões 🇪🇺 Europa e 🇺🇸 USA.

Otimize o seu fluxo de trabalho e reduza o tempo de configuração: pode implementar o serviço de alojamento MinIO Object Storage da Stackhero em apenas 5 minutos.

Existem duas principais formas de conectar aplicações Python ao MinIO.

Primeiro, instale o pacote AWS SDK (boto3):

pip install boto3
pip freeze > requirements.txt

O exemplo seguinte demonstra como conectar-se ao 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')

# Carregar um ficheiro local '/home/john/piano.mp3' para o bucket 'songs' com o nome de objeto 'piano.mp3'
s3.Bucket('songs').upload_file('/home/john/piano.mp3', 'piano.mp3')

# Descarregar o objeto 'piano.mp3' do bucket 'songs' e guardá-lo localmente como '/tmp/classical.mp3'
s3.Bucket('songs').download_file('piano.mp3', '/tmp/classical.mp3')

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

Mais detalhes estão disponíveis na documentação Python do MinIO.

Alternativamente, pode usar o SDK MinIO para Python. Primeiro, instale o pacote MinIO:

pip install minio
pip freeze > requirements.txt

Abaixo está um exemplo que mostra como conectar-se ao MinIO usando o SDK MinIO:

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

def main():
  # Crie um cliente para o seu servidor MinIO usando as suas chaves de acesso e secretas
  client = Minio(
    endpoint='<XXXXXX>.stackhero-network.com:443',
    secure=True,
    access_key='YOUR_ACCESS_KEY',
    secret_key='YOUR_SECRET_KEY'
  )

  # Verifique se o bucket 'asiatrip' existe, e crie-o se não existir
  found = client.bucket_exists("asiatrip")
  if not found:
    client.make_bucket("asiatrip")
  else:
    print("Bucket 'asiatrip' already exists")

  # Carregar '/home/user/Photos/asiaphotos.zip' como 'asiaphotos-2015.zip' para o 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 mais informações, consulte a documentação do SDK Python do MinIO.