MinIO: PythonをMinIOに接続する
このドキュメントははじめにガイドの一部です。完全なガイドはこちらからご覧いただけます:S3互換のオブジェクトストレージとしてMinIOを使い始める方法。
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるMinIOオブジェクトストレージソリューションを提供しています。
- 無制限の転送。
- シンプルで予測可能、かつ透明な価格設定。
- HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://object-storage.your-company.com)。
- ワンクリックで簡単に更新。
- プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ。
- 🇪🇺 ヨーロッパと🇺🇸 アメリカで利用可能。
時間を節約し、生活を簡素化: StackheroのMinIOオブジェクトストレージホスティングソリューションを試すのに5分しかかかりません!
PythonアプリケーションをMinIOに接続する主な方法は2つあります。
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' をバケット 'songs' に 'piano.mp3' というオブジェクト名でアップロード
s3.Bucket('songs').upload_file('/home/john/piano.mp3', 'piano.mp3')
# バケット '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に接続する
また、Python用のMinIO SDKを使用することもできます。まず、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'
)
# バケット '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' としてバケット '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ドキュメントを参照してください。