主题
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
bash
# 使用 Homebrew 安装 mc
brew install minio/stable/mc
# 验证安装
mc --version
2.2 下载二进制文件 (GNU/Linux)
对于 Linux 系统,可以直接下载预编译的二进制文件:
平台 | CPU架构 | URL |
---|---|---|
GNU/Linux | 64-bit Intel | http://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 Windows | 64-bit Intel | http://dl.minio.org.cn/client/mc/release/windows-amd64/mc.exe |
安装步骤:
- 下载 mc.exe 文件到本地目录
- 将 mc.exe 所在目录添加到系统 PATH 环境变量中
- 打开命令提示符或 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
:存储服务的端点 URLACCESS_KEY
:访问密钥 IDSECRET_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 使用技巧
批量操作:使用通配符进行批量文件操作
bashmc cp *.jpg hi168-s3/srebro/images/
并行传输:mc 默认支持并行传输,可以通过环境变量调整并发数
bashexport MC_PARALLEL_UPLOADS=10
配置文件:mc 的配置文件位于
~/.mc/config.json
,可以手动编辑日志记录:启用详细日志记录
bashmc --debug cp file.txt hi168-s3/srebro/