0%

Python-操作-MinIO

Python 操作 MinIO

下面是最常用的 Python 操作 MinIO 的代码示例,基于官方推荐的 SDK:minio
适用于上传、下载、列出、删除对象等基本操作,支持中文文件名


✅ 1. 安装 SDK

bash


复制编辑
pip install minio

✅ 2. 初始化客户端

python


复制编辑
from minio import Minio

# 初始化 MinIO 客户端
client = Minio(
"your-minio-host:9000", # 例如:localhost:9000
access_key="minioadmin",
secret_key="minioadmin",
secure=False # 如果你用 http 而不是 https
)

✅ 3. 创建桶(支持中文桶名)

python


复制编辑
bucket_name = "测试桶"

if not client.bucket_exists(bucket_name):
client.make_bucket(bucket_name)

✅ 4. 上传文件(支持中文文件名)

python


复制编辑
client.fput_object(
bucket_name="测试桶",
object_name="文件_你好.txt", # MinIO 中的对象名(可中文)
file_path="/path/to/local/file.txt" # 本地文件路径
)
print("上传成功")

✅ 5. 列出对象

python


复制编辑
objects = client.list_objects("测试桶", recursive=True)
for obj in objects:
print(obj.object_name)

✅ 6. 下载对象

python


复制编辑
client.fget_object(
bucket_name="测试桶",
object_name="文件_你好.txt",
file_path="/tmp/下载文件.txt"
)
print("下载成功")

✅ 7. 删除对象

python


复制编辑
client.remove_object("测试桶", "文件_你好.txt")

⚠️ 注意事项(实话实说):

  1. 中文桶名和对象名是支持的,但 URL 操作时 MinIO 会自动进行 URL 编码,确保客户端使用 UTF-8。
  2. 如果你通过浏览器访问对象,链接中中文会变成 %E6%B5%8B...,这是正常行为。