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")
|
⚠️ 注意事项(实话实说):
- 中文桶名和对象名是支持的,但 URL 操作时 MinIO 会自动进行 URL 编码,确保客户端使用 UTF-8。
- 如果你通过浏览器访问对象,链接中中文会变成
%E6%B5%8B...,这是正常行为。