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 oferece uma solução MinIO Object Storage pronta a usar que proporciona uma série de benefícios, incluindo:
- Transferências ilimitadas.
- Preços simples, previsíveis e transparentes.
- Nome de domínio personalizável seguro com HTTPS (por exemplo, https://object-storage.sua-empresa.com).
- Atualizações sem esforço com apenas um clique.
- Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.
- Disponível na 🇪🇺 Europa e nos 🇺🇸 EUA.
Poupe tempo e simplifique a sua vida: são necessários apenas 5 minutos para experimentar a solução de alojamento MinIO Object Storage da Stackhero!
Existem duas principais formas de conectar aplicações Python ao MinIO.
Conectando ao MinIO com o AWS SDK (boto)
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.
Conectando ao MinIO com o SDK 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.