对象存储

rustfs

rustfs/rustfs: 🚀 High-performance distributed object storage for MinIO alternative. 国产minio替代方案,效率比minio高(并且minio社区版开始搞事情了)

Minio

minio/minio: The Object Store for AI Data Infrastructure (github.com)

服务搭建

参照官网流程,使用docker-compose就可以了。(后续把docker-compose文件贴上来)

version: '3.7'
services:
  minio:
    image: minio/minio:latest
    container_name: minio
    volumes:
      - /volume2/docker/minio/data/data:/data
      - /volume2/docker/minio/data/config:/root/.minio
    environment:
      - MINIO_ROOT_USER=kaihang
      - MINIO_ROOT_PASSWORD=xxxxx
      # - MINIO_SERVER_URL=http://172.111.20.10:9000
    hostname: minio.fu.insvc.cn
    command: server --console-address ':9001' /data
    restart: always
    network_mode: bridge
    privileged: true
    healthcheck:
      test: ["CMD", "curl", "-f", "http://172.111.20.10:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

客户端

安装

curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

指令

添加存储服务别名

# eg: mc alias set myminio http://127.0.0.1:9000 minioadmin minioadmin
mc alias set <alias> <endpoint> <access_key> <secret_key>

列出存储桶

mc ls myminio

创建存储桶

mc mb myminio/mybucket

上传文件

# 文件夹的话增加--recursive参数
mc cp /path/to/local/file.txt myminio/mybucket

下载文件

# 文件夹的话增加--recursive参数
mc cp myminio/mybucket/file.txt /path/to/local/

删除文件

mc rm myminio/mybucket/file.txt

同步本地目录与存储桶

mc mirror /path/to/local/dir myminio/mybucket

设置文件公开可读

mc anonymous set public myminio/mybucket/myfile.txt

生成预签名 URL

mc share download --expire=1h myminio/mybucket/file.txt

# 或者文件设置成公开可读之后,直接通过https://<minio-endpoint-API-PORT>/<bucket-name>/<object-key>访问

显示存储桶统计

mc du myminio/mybucket