Skip to content

MinIO 客户端工具 (mc) 使用指南

一、mc 客户端工具说明

MinIO Client (mc) 是用于替代传统的 UNIX 命令如 ls、cat、cp、mirror、diff、find 等。它支持文件系统和兼容 Amazon S3 的云存储服务(AWS Signature v2 和 v4)。

1.1 主要特性

  • 简单易用:类似于 UNIX 命令的语法,易于学习和使用
  • 跨平台:支持 Linux、macOS、Windows 等多种操作系统
  • 高性能:支持并行上传/下载,提供高效的数据传输
  • 安全性:支持 TLS 加密传输,确保数据安全
  • 兼容性:兼容 Amazon S3、Google Cloud Storage、Azure Blob Storage 等多种云存储服务

1.2 支持的存储服务

  • MinIO
  • Amazon S3
  • Google Cloud Storage
  • Microsoft Azure Blob Storage
  • 阿里云 OSS
  • 腾讯云 COS
  • 其他兼容 S3 API 的存储服务

二、mc 客户端部署

2.1 使用 Homebrew 安装 mc

在 macOS 系统上,可以使用 Homebrew 包管理器来安装 mc

MacOS下Homebrew国内镜像加速配置

bash
# 使用 Homebrew 安装 mc
brew install minio/stable/mc

# 验证安装
mc --version

2.2 下载二进制文件 (GNU/Linux)

对于 Linux 系统,可以直接下载预编译的二进制文件:

平台CPU架构URL
GNU/Linux64-bit Intelhttp://dl.minio.org.cn/client/mc/release/linux-amd64/mc

安装步骤:

bash
# 下载 mc 二进制文件
wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc

# 添加执行权限
chmod +x mc

# 移动到系统路径(可选)
sudo mv mc /usr/local/bin/

# 验证安装
mc --version

2.3 下载二进制文件 (Microsoft Windows)

对于 Windows 系统,可以下载 exe 可执行文件:

平台CPU架构URL
Microsoft Windows64-bit Intelhttp://dl.minio.org.cn/client/mc/release/windows-amd64/mc.exe

安装步骤:

  1. 下载 mc.exe 文件到本地目录
  2. 将 mc.exe 所在目录添加到系统 PATH 环境变量中
  3. 打开命令提示符或 PowerShell,验证安装:
cmd
mc.exe --version

三、mc 客户端基本使用

3.1 配置存储服务别名

在使用 mc 之前,需要先配置存储服务的连接信息:

bash
# 添加存储服务,并设置访问密钥
mc alias set hi168-s3 https://s3.hi168.com ACCESS_KEY SECRET_KEY

# 查看已配置的别名
mc alias list

# 删除别名(如需要)
mc alias remove hi168-s3

参数说明:

  • hi168-s3:自定义的别名
  • https://s3.hi168.com:存储服务的端点 URL
  • ACCESS_KEY:访问密钥 ID
  • SECRET_KEY:秘密访问密钥

3.2 存储桶管理

创建存储桶

bash
# 创建新的存储桶
mc mb hi168-s3/srebro

3.3 文件操作

上传文件

bash
# 上传单个文件到存储桶
mc cp zookeeper.out hi168-s3/srebro/

# 上传文件并重命名
mc cp local-file.txt hi168-s3/srebro/remote-file.txt

# 上传整个目录
mc cp --recursive /local/directory/ hi168-s3/srebro/

# 上传时显示进度
mc cp --recursive /local/directory/ hi168-s3/srebro/ --progress

下载文件

bash
# 从存储桶下载文件到本地
mc cp hi168-s3/srebro/fox.jpg /tmp/

# 下载并重命名
mc cp hi168-s3/srebro/fox.jpg /tmp/new-name.jpg

# 下载整个目录
mc cp --recursive hi168-s3/srebro/ /local/download/

# 断点续传下载
mc cp --continue hi168-s3/srebro/large-file.zip /tmp/

列出存储桶和对象

bash
# 查看所有存储桶
mc ls hi168-s3/

# 查看指定存储桶中的对象
mc ls hi168-s3/srebro/

# 递归列出所有对象
mc ls --recursive hi168-s3/srebro/

# 显示详细信息
mc ls --recursive --summarize hi168-s3/srebro/

删除存储桶

bash
# 删除空的存储桶
mc rb hi168-s3/srebro

# 强制删除非空存储桶(包含所有对象)
mc rb --force hi168-s3/srebro

同步文件

bash
# 将本地目录同步到存储桶
mc mirror /local/directory/ hi168-s3/srebro/

# 将存储桶同步到本地
mc mirror hi168-s3/srebro/ /local/directory/

# 删除目标中多余的文件
mc mirror --remove /local/directory/ hi168-s3/srebro/

删除文件

bash
# 删除单个文件
mc rm hi168-s3/srebro/fox.jpg

# 删除多个文件
mc rm hi168-s3/srebro/file1.txt hi168-s3/srebro/file2.txt

# 递归删除目录及其内容
mc rm --recursive hi168-s3/srebro/directory/

# 强制删除(不提示确认)
mc rm --force --recursive hi168-s3/srebro/directory/

3.4 高级功能

文件查找

bash
# 查找指定名称的文件
mc find hi168-s3/srebro/ --name "*.jpg"

# 查找指定大小的文件
mc find hi168-s3/srebro/ --larger 10MB

# 查找指定时间范围的文件
mc find hi168-s3/srebro/ --newer-than 7d

文件统计

bash
# 统计存储桶使用情况
mc du hi168-s3/srebro/

# 统计文件数量和总大小
mc du --summarize hi168-s3/srebro/

设置访问策略

bash
# 设置存储桶为公开读取
mc policy set public hi168-s3/srebro/

# 设置存储桶为私有
mc policy set private hi168-s3/srebro/

# 查看存储桶策略
mc policy get hi168-s3/srebro/

3.5 常用选项参数

参数说明
--recursive递归操作目录
--force强制执行,不提示确认
--continue断点续传
--progress显示进度条
--json以 JSON 格式输出
--quiet静默模式,减少输出
--help显示帮助信息

3.6 使用技巧

  1. 批量操作:使用通配符进行批量文件操作

    bash
    mc cp *.jpg hi168-s3/srebro/images/
  2. 并行传输:mc 默认支持并行传输,可以通过环境变量调整并发数

    bash
    export MC_PARALLEL_UPLOADS=10
  3. 配置文件:mc 的配置文件位于 ~/.mc/config.json,可以手动编辑

  4. 日志记录:启用详细日志记录

    bash
    mc --debug cp file.txt hi168-s3/srebro/
最近更新

采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟