跳转至

MinIO S3存储服务

MinIO是什么

20240128171241-1d002-image.png

docker-compose.yaml

参考:MinIO Object Storage for Container — MinIO Object Storage for Container

注意:镜像的版本需要匹配宿主机的类型,比如PVE虚拟化的机器可能不支持cpuv2,需要手动指定tag为2024-01-18T22-51-28Z-cpuv1

YAML
# https://quay.io/repository/minio/minio?tab=tags&tag=latest
version: "3"

services:
  dev-minio:
    image: quay.io/minio/minio:RELEASE.2024-01-18T22-51-28Z-cpuv1
    container_name: dev_minio
    hostname: minio_server
    networks:
      - dev_minio_net
    volumes:
      - ./data:/data
    ports:
      - "59000:9000"
      - "59001:9001"
    environment:
      - UID=$(id -u)
      - GID=$(id -g)
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=MinIO145#
    command: server /data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:59000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3


networks:
  dev_minio_net:
    name: dev_minio_net
    driver: bridge
访问对于IP的59001端口即可进入webUI管理界面

20240128171339-292b6-image.png

创建bucket

20240128171359-f1a90-image.png

20240128171421-8d1d8-image.png

创建access keys

20240128171445-89a40-image.png

20240128171530-4de55-image.png

20240128171547-5af2b-image.png

使用mc客户端进行交互

mc命令参考:Command Quick Reference

mc安装

参考:MinIO Client — MinIO Object Storage for Linux

macOS

Bash
1
2
3
brew install minio/stable/mc

mc --help

Linux

Bash
1
2
3
4
5
6
7
8
curl https://dl.min.io/client/mc/release/linux-amd64/mc \
  --create-dirs \
  -o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

查看mc版本

Bash
mc --version

20240128171701-f8324-image.png

配置MinIO连接alias

下面使用一个临时的key进行测试,并添加刚刚部署的minio服务

Bash
1
2
3
4
export ACCESS_KEY=rFDqI6aFw2616BZhamQx
export SECRET_KEY=EIgl53Jp4PKC4lBVcOOMUort9lqb7G5DnzbYwVpV

mc alias set minio145 http://192.168.2.145:59000 $ACCESS_KEY $SECRET_KEY

测试连接是否正常admin info

Bash
mc admin info minio145

20240128171729-5b248-image.png

查看region信息

Bash
mc admin info --json minio145 | jq ".info.region"

20240128171749-715c8-image.png

jq是用来处理json数据的命令行工具

Bash
brew install jq

测试连接网络信息ping

参考:mc ping — MinIO Object Storage for Linux

Bash
mc ping minio145 --count 5

20240128171837-60803-image.png

上传下载对象cp

参考:mc cp — MinIO Object Storage for Linux

命令范式

Bash
mc cp SOURCE TARGET

其中,不区分上传和下载操作,如果SOURCETARGET都在服务器的bucket中,那么则是直接在不同的bucket中创建副本,示例命令如下:

Bash
1
2
3
4
5
6
7
8
# 上传
mc cp "/Users/lzwang/Downloads/Python.png" minio145/test-bucket/

# 下载
mc cp minio145/test-bucket/Python.png ~/

# 增加副本
mc cp minio145/test-bucket/Python.png minio145/test-bucket2/

20240128173745-77fb4-image.png

查看对象cat

参考:mc cat — MinIO Object Storage for Linux

可以直接使用此命令查看存储中的文本文件,而不必下载到本地

Bash
1
2
3
date +%Y-%m-%d >> date.txt
mc cp ./date.txt minio145/test-bucket/
mc cat minio145/test-bucket/date.txt

20240128173822-adc65-image.png

列出对象ls

参考:mc ls — MinIO Object Storage for Linux

Bash
mc ls minio145/test-bucket/

20240128173856-4282f-image.png

移动对象mv

参考:mc mv — MinIO Object Storage for Linux

Bash
mc mv minio145/test-bucket/Python.png minio145/test-bucket2/

20240128173922-d96a6-image.png

删除对象rm

参考:mc rm — MinIO Object Storage for Linux

Bash
mc rm minio145/test-bucket/date.txt

20240128173948-28b4f-image.png

查看对象状态stat

参考:mc stat — MinIO Object Storage for Linux

Bash
mc stat minio145/test-bucket/Python.png

20240128174008-dd5ec-image.png

参考