minio python使用举例
要在 Python 中使用 MinIO,可以使用 minio
Python 客户端库来与 MinIO 服务进行交互。以下是如何通过 Python 连接到 MinIO,上传文件,下载文件,以及列出存储桶中对象的示例:
安装 MinIO Python 客户端
首先,你需要安装 MinIO 的 Python 客户端。可以使用 pip 工具进行安装:
pip install minio
使用示例
以下示例展示了如何在 Python 中使用 MinIO 客户端进行基本操作,例如连接 MinIO 服务器,创建存储桶,上传和下载文件等。
from minio import Minio
from minio.error import S3Error
# 连接到 MinIO 服务器
minio_client = Minio(
"play.min.io", # MinIO 服务的主机名或 IP 地址
access_key="YOUR-ACCESS-KEY", # 替换为你的 Access Key
secret_key="YOUR-SECRET-KEY", # 替换为你的 Secret Key
secure=True # 根据需要(HTTP 或 HTTPS)设置为 True 或 False
)
# 创建一个存储桶,如果存储桶不存在
bucket_name = "my-bucket"
if not minio_client.bucket_exists(bucket_name):
minio_client.make_bucket(bucket_name)
print(f"Bucket '{bucket_name}' created.")
else:
print(f"Bucket '{bucket_name}' already exists.")
# 上传文件到存储桶
file_path = "path/to/your/localfile.txt"
object_name = "uploaded-file.txt"
minio_client.fput_object(bucket_name, object_name, file_path)
print(f"'{file_path}' is successfully uploaded as '{object_name}' to bucket '{bucket_name}'.")
# 列出存储桶中的对象
objects = minio_client.list_objects(bucket_name)
print(f"Objects in bucket '{bucket_name}':")
for obj in objects:
print(obj.object_name)
# 下载对象到本地文件
download_path = "path/to/downloaded-file.txt"
minio_client.fget_object(bucket_name, object_name, download_path)
print(f"'{object_name}' is successfully downloaded as '{download_path}'.")
# 处理异常
try:
# 可以在这里添加更多的操作和异常处理
pass
except S3Error as exc:
print("Error occurred.", exc)
说明
- Minio Client: 使用
Minio()
类来创建一个新的 Minio 客户端实例,该实例需要 MinIO 服务器地址和访问密钥。 - 存储桶操作: 使用
bucket_exists()
和make_bucket()
方法来检查和创建存储桶。 - 文件操作:
- 使用
fput_object()
上传文件。 - 使用
list_objects()
列出存储桶内所有对象。 - 使用
fget_object()
下载文件。
- 使用
请确保替换示例中的 YOUR-ACCESS-KEY
和 YOUR-SECRET-KEY
以及其他路径到你的实际信息。
这些示例演示了如何使用基本的对象存储操作,但 MinIO API 客户端还支持更多高级功能,如分区上传、策略管理等,可以根据需求进行拓展。