第四十四章:Minio

一、简介

官网:https://min.io/

中文网址:https://www.minio.org.cn/

MinIO 是一个对象存储解决方案,提供与 Amazon Web Services S3 兼容的 API,并支持所有核心 S3 功能。MinIO 可部署在任何地方——公有云或私有云、裸机基础设施、编排环境以及边缘基础设施。

二、关键字

# Policy
Policy 是权限管理的基础设置, JSON格式

# User
用户用于登录控制台(Console)
用户的权限通过两种方式设置, 一种是直接设置 Policies, 例如 readwrite 就对所有bucket都有读写权限; 另一种是用户组, 可以继承所在用户组的 Policies

# Group
组权限通过 Policies 设置

# Access Key
access_key 由用户自己创建
每个用户可以有多个 access key, 每个 access_key 与 secret_key 组成一对, 用于接口访问时验证身份

# Bucket
Bucket 是一个文件桶, 类似于目录的概念. 可以设置容量限制, 是否保持文件版本, 是否锁定文件(防止被删除)
通过 Anonymous Access Rule 控制匿名访问的权限, 设置时需要设置一个路径前缀(不能使用通配符*).
如果可匿名读取, 那么访问文件的路径就是 http://[host]:9000/[bucket]/[file path]

三、docker 安装

访问:http://127.0.0.1:9001/login

version: '3'

services:
  minio:
    image: 'minio/minio:latest'
    container_name: minio
    restart: always
    command: server /data --console-address ":9001"
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=admin123
      - MINIO_COMPRESS=on
      - MINIO_COMPRESS_EXTENSIONS=.txt,.log,.csv,.json,.tar,.xml,.bin
      - MINIO_COMPRESS_MIME_TYPES=text/*,application/json,application/xml
    ports:
      - "9000:9000"
      - "9001:9001"
    volumes:
      - /mnt/01f/lost+found/minio/data:/data
      - /mnt/01f/lost+found/minio/config:/root/.minio

四、异步封装

# python 编程,见utils ---> async_minio_api.py
getee:https://gitee.com/ysging/mqtt_django.git

# 封装逻辑
import asyncio
async def list_buckets(self):
    """获取桶列表"""
    def _list_buckets():
        mc = self._create_client()
        return mc.list_buckets()
    return await asyncio.to_thread(_list_buckets)
# 封装的方法
mc = Minio(endpoint=endpoint, access_key=access_key, secret_key=secret_key, secure=secure)
mc.make_bucket(bucket_name=bucket_name)

创建桶  bucket_exists
获取桶列表  list_buckets
删除桶  remove_bucket
上传流数据  put_object
上传文件数据  fput_object
获取流数据  get_object
获取文件数据  fget_object
获取桶中数据列表  list_objects
删除桶中数据对象  remove_object
批量删除桶中数据对象  remove_objects
posted @ 2025-04-17 15:26  亦双弓  阅读(25)  评论(0)    收藏  举报