如何快速使用minio


一、minio可以拿来做啥?

minio支持存储非结构化数据,如图片、视频、备份、容器镜像等,适用于小型测试环境。

二、如何部署

docker部署

2.1拉取镜像,直接docker desktop

 2.2部署

注意好本地挂载的目录的权限是否足够

docker run -d --name minio \
  -p 9000:9000 -p 9001:9001 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v /data/minio:/data \
  minio/minio server /data --console-address ":9001"

 

 

2.3 pytho引入minio

安装sdk

pip install miniol

连接minio,然后创建bucket,上传、下载文件

from minio import Minio  # 导入 minio 客户端库

# 1. 初始化 MinIO 客户端
client = Minio(
    "ip:port",   # MinIO 服务的地址和端口
    access_key="minioadmin",  # 访问密钥(管理员账号)
    secret_key="minioadmin",  # 密钥密码(管理员密码)
    secure=False              # 是否使用 https,开发环境可用 http,故为 False
)

bucket_name = "my-bucket"  # 要操作的桶(bucket)名称

# 2. 检查桶是否存在,如果不存在则创建
if not client.bucket_exists(bucket_name):
    # bucket_exists(bucket_name): 检查名为 bucket_name 的桶是否存在
    # 入参:bucket_name(字符串,桶名)
    client.make_bucket(bucket_name)
    # make_bucket(bucket_name): 创建名为 bucket_name 的新桶
    # 入参:bucket_name(字符串,桶名)

# 3. 上传本地文件到 MinIO 桶
client.fput_object(
    bucket_name,          # 桶名称,目标对象存放的桶
    "test_sample.py",     # object_name,存储到 MinIO 后的文件名
    "./test_sample.py"    # file_path,本地要上传的文件路径
)


# 4. 从 MinIO 下载对象(文件)到本地
client.fget_object(
    bucket_name,              # 桶名称
    "test_sample.py",         # object_name,要下载的对象名
    "./new_test_sample.py"    # file_path,本地保存路径和文件名
)