MinIO: 連接 Python 到 MinIO
此文件屬於入門指南指南的一部分。請在此處查看完整指南:如何開始使用 MinIO 作為 S3 兼容的物件存儲。
👋 歡迎來到 Stackhero 文件!
Stackhero 提供一個即用型的 MinIO Object Storage 解決方案,帶來多項好處,包括:
- 無限傳輸。
- 簡單、可預測和透明的定價。
- 使用 HTTPS 保護的可自訂域名(例如,https://object-storage.your-company.com)。
- 只需點擊即可輕鬆更新。
- 由專用私有 VM提供的最佳性能和強大安全性。
- 可用於 🇪🇺 歐洲 和 🇺🇸 美國。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 MinIO Object Storage hosting 解決方案!
有兩種主要方法可以將 Python 應用程序連接到 MinIO。
使用 AWS SDK (boto) 連接到 MinIO
首先,安裝 AWS SDK 包 (boto3):
pip install boto3
pip freeze > requirements.txt
以下示例展示如何使用 boto3 連接到 MinIO:
#!/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')
# 上傳本地文件 '/home/john/piano.mp3' 到 bucket 'songs',對象名為 'piano.mp3'
s3.Bucket('songs').upload_file('/home/john/piano.mp3', 'piano.mp3')
# 從 bucket 'songs' 下載對象 'piano.mp3' 並本地保存為 '/tmp/classical.mp3'
s3.Bucket('songs').download_file('piano.mp3', '/tmp/classical.mp3')
print("'piano.mp3' downloaded as 'classical.mp3'.")
更多詳細信息可在 MinIO Python 文檔中找到。
使用 MinIO SDK 連接到 MinIO
或者,您可以使用 MinIO SDK for Python。首先,安裝 MinIO 包:
pip install minio
pip freeze > requirements.txt
以下是一個示例,展示如何使用 MinIO SDK 連接到 MinIO:
#!/usr/bin/env python
from minio import Minio
from minio.error import S3Error
def main():
# 使用您的訪問和密鑰創建 MinIO 服務器的客戶端
client = Minio(
endpoint='<XXXXXX>.stackhero-network.com:443',
secure=True,
access_key='YOUR_ACCESS_KEY',
secret_key='YOUR_SECRET_KEY'
)
# 檢查 bucket 'asiatrip' 是否存在,如果不存在則創建
found = client.bucket_exists("asiatrip")
if not found:
client.make_bucket("asiatrip")
else:
print("Bucket 'asiatrip' already exists")
# 上傳 '/home/user/Photos/asiaphotos.zip' 作為 'asiaphotos-2015.zip' 到 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)
有關更多信息,請參閱 MinIO Python SDK 文檔。