MinIO 客户端“mc”是一款适用于兼容 Amazon S3 的云存储和兼容 POSIX 的文件系统的工具。它实现了基本的 Unix 命令,例如 ls、cp、cat 和 diff。mc 完全用 Golang 编写,并在 Apache 许可证 2.0 版下发布。
该项目托管在 Github 上 — https://github.com/minio/mc
名称
mc - 用于云存储和文件系统的 MinIO 客户端。
用法
mc [全局标志] 命令 [命令标志] [参数...]
命令
ls 列出文件和文件夹。
mb 创建存储桶或文件夹。
cat 显示文件内容。
cp 将多个源中的文件和文件夹复制到
单个目标。
mirror 将文件夹从单个源递归地镜像到
多个目标。
session 管理 cp 和 mirror 的会话。
share 通过 URL 共享文档。
diff 计算两个文件或文件夹之间的差异。
access 设置访问权限。
config 修改、添加、删除默认配置中的别名
配置文件 [~/.mc/config.json]。
update 检查新的软件更新。
version 打印版本。
全局标志
--config-folder, -C "/home/harsha/.mc" 配置文件夹路径。
--quiet, -q 抑制冗长的控制台输出。
--mimic 模拟操作系统工具。与 shell 别名一起使用。
--json 启用 json 格式的输出。
--debug 启用调试输出。
--nocolor 禁用控制台着色。
版本
Wed, 26 Aug 2015 19:58:04 GMT
选项过多
在 cp、ls 和 cat 中实现的来自 GNU coreutils (8.23) 包的选项数量
cat - 12 个选项
cp - 31 个选项
ls - 58 个选项
rsync - 127 个选项(不是 coreutils 的一部分)
很难记住超过 3 到 4 个选项。
台式机配备了 8TB SATA 磁盘
ls、cp 之类的工具无法扩展到 TB 级别的磁盘。用户经常最终使用rsync而不是cp命令来恢复失败的复制操作。同样,rsync 也不适用于 TB 级别的磁盘。
POSIX 已死
从 Ext4、XFS 到 NFS v4.x 的基于 POSIX 的文件系统无法扩展以满足云的需求。亚马逊、Facebook 和谷歌都已从 POSIX 转移到更简单的基于 HTTP 的 GET/PUT 样式的 API。Unix 工具需要重写才能支持这些现代 API(Amazon S3、Google Cloud Storage、Azure Blob Storage)
我们为什么要编写“mc”?
我们摒弃了不合理的 Unix 标准,并用新的有用功能取代了它们。感谢 Golang 将 C 取代为首选的系统语言。
进度条
进度条是在传输大量数据时必不可少的功能。
暂停/恢复
能够安全地恢复失败的镜像和复制操作。
Amazon S3 API 支持
Amazon S3 API 是云存储的行业标准。mc 连接了 Amazon S3 和 POSIX。
站点到站点镜像
mirror 命令计算跨多个站点的差异并仅同步缺失的文件。
彩色编码的人类可读输出
彩色人类可读输出在现代终端上默认启用。
可脚本化的 JSON API
大型网站通过围绕常见 Unix 工具的脚本来自动化常见操作。mc 支持 JSON 格式的输出,以便为 python、bash、perl、ruby …提供一致的可脚本性。
通过 URL 共享文档
类似于 Dropbox 和 box.net,用户可以从命令行在 Amazon S3 上共享文档。share 命令会生成一个带有用户指定有效期的 URL。这个 URL 可以从任何地方访问,无需特殊凭据。
其他杂项功能
单个静态二进制文件,没有对 GNU/Linux、Mac OS X 和 Microsoft Windows 操作系统的依赖关系。更新通知。Amazon S3 HTTP 跟踪。
我们会在 gitter 上闲逛 - https://gitter.im/minio/minio。请向我们发送反馈和补丁。