mcpField
M
mc

mc

github.com/minio云与 DevOps238 次安装10 周前更新
代码仓库

关于 mc

mc 是 MinIO AIStor 命令行客户端,也可操作 MinIO、AWS S3 等兼容 S3 的对象存储及本地文件系统。此技能说明连接、数据操作与管理命令,并强调机器可读输出和破坏性操作防护。

主要功能

  1. 01操作对象与存储桶
  2. 02在本地与远程路径间传输数据
  3. 03管理 AIStor/MinIO 服务
  4. 04以 NDJSON 输出供脚本解析
  5. 05对破坏性命令设置人工确认

适用场景

  1. 01检查或传输 S3 兼容存储中的对象
  2. 02通过脚本解析存储操作结果
  3. 03管理 MinIO 用户、配置与复制设置
  4. 04识别删除或覆盖操作并转交人工确认

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/minio/skills --skill mc

安装后在 Claude Code 中输入/mc确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
admin.md
buckets.md
connect.md
data-management.md
objects.md
output.md
tables.md

详细介绍

mc — MinIO AIStor 命令行客户端

mc 是一个静态二进制文件,可连接任何兼容 S3 的对象存储(MinIO AIStor、MinIO、AWS S3 等)以及本地文件系统。它有两个界面:用于通过 S3 API 移动和检查对象及存储桶的数据平面命令(ls、cp、rm、mirror 等),以及用于管理 AIStor/MinIO 服务本身(用户、配置、修复、复制、分层)的控制平面 mc admin 命令。另有一个单独的 mc table 界面用于管理 AIStor Iceberg Tables。

本技能向模型讲解那些 Agent 容易出错或难以快速发现的内容。它不会列出所有标志:如需查看任何命令准确且最新的标志,请运行 mc <command> --help(以及 mc <command> <subcommand> --help)。该帮助信息是权威且与版本匹配的;本技能不是。

1. 别名是前提条件——没有别名,任何操作都无法进行

每个远程操作都以一个别名为目标:一个命名的端点及凭据。先检查现有配置,再视需要创建别名:

mc alias list                # what's configured (redacts secret keys)
mc alias list --json         # same, machine-readable

提供别名有两种方式。对于 Agent,优先使用环境变量方式——这样凭据不会写入 mc 配置文件,也不会修改用户的配置:

# Per-process — the agent's default. Alias name is the MC_HOST_ suffix.
# Inject the value from a secret manager / CI secret rather than a literal.
export MC_HOST_myminio="https://${KEY}:${SECRET}@play.min.io"
mc ls myminio/                             # "myminio" now resolves

# Persisted to ~/.mc/config.json — only when the user wants it saved.
mc alias set myminio https://play.min.io ACCESS_KEY SECRET_KEY

环境变量并不意味着可以忽视保密性:直接执行 export … 会将内容写入 shell 历史记录,值也会显示在进程环境中。不要将密钥硬编码或回显到日志中。参见 references/connect.md。

设置完成后,别名名称就是路径的第一个部分(myminio/bucket/key)。配置位于 ~/.mc/config.json(可通过 --config-dir 或 MC_CONFIG_DIR 覆盖)。完整详情、令牌/STS URL 格式、TLS 和其他提供商信息:references/connect.md。

2. 获取机器可读的输出

  • --json 输出的是 JSON Lines(NDJSON),而不是 JSON 数组。 每行一个 JSON 对象——逐行解析(while read、jq -c、流式处理),不要对整个输出流调用 json.loads()。流式命令(ls、mirror、cp)会在每个项目处理时输出一行。
  • 每个对象都有一个 "status" 字段("success" 或 "error");出错时,对象会包含错误消息,且 mc 会以非零状态码退出。
  • --quiet 会抑制进度条/旋转指示器;--no-color 会移除 ANSI 转义码。解析时优先使用 --json,并添加 --quiet 以获得整洁的日志。
  • mc 成功时返回退出码 0,失败时返回非零值——应根据退出码而不是 stdout 文本进行分支处理。

详细信息和各命令的输出结构:references/output.md。

3. 路径语法

目标可以是本地路径(./data、/tmp/x),也可以是带别名前缀的 S3 路径:ALIAS/BUCKET/PREFIX/OBJECT。只有第一个部分与已配置的别名匹配时,它才会被视为别名;否则 mc 会将整个标记视为本地路径。因此,mc cp file.txt myminio/bucket/ 会将文件从本地复制到远程,而 mc cp myminio/bucket/key ./ 会将文件从远程复制到本地。没有 s3:// 方案;别名取代了它。

4. 破坏性操作 — 拒绝执行并上报人工处理

某些 mc 命令不可逆,和/或会影响整个站点。将这些命令视为仅限人工执行:即使任务看起来要求执行,也不要自行运行。停止操作,向用户展示确切的命令和目标,并要求由人工明确执行或提供书面授权。切勿试探性地运行这些命令、在循环中运行,或将其用于“清理”。

严格限制 — 默认拒绝;必须由人工运行或明确授权:

  • mc rm --recursive --force ALIAS/BUCKET/PREFIX — 批量删除对象。 递归操作必须使用 --force。如果目标仅为别名,添加 --dangerous(mc rm --recursive --force --dangerous myminio)会清除整个站点。 --versions / --purge-deleted 会销毁版本历史。不要运行这些命令。
  • mc rb --force ALIAS/BUCKET(以及用于整个站点的 mc rb --force --dangerous ALIAS)— 删除存储桶及其所有内容。如果存储桶非空,不带 --force 的 rb 会因致命错误而中止;它不会提示确认。
  • mc mirror --remove … — 删除目标端中源端不存在的对象。

先确认 — 向用户展示,仅在获得明确批准后继续:

  • mc mirror --overwrite …,或使用 cp / put 写入已有键 — 替换数据。
  • 清除配置的形式:mc ilm rule remove --all --force、 mc replicate rm --all --force、mc event remove、 mc anonymous set private(撤销公共访问权限)。

除非事先已在存储桶上启用版本控制,否则它无法保护你。如有疑问,不要操作 — 将确切的命令交由人工处理。请参阅各参考文档中的“不可逆”提示。

5. 命令索引 — 选择合适的命令,然后查看其 --help

任务命令
连接/配置客户端alias、update、license、support
检查对象和存储桶ls、stat、head、tree、du、find、diff
移动数据cp、get、put、mv、mirror、pipe、cat、od
删除数据rm、rb、undo
查询和监视sql、watch、ping、ready
分享/预签名share
存储桶配置mb、version、tag、retention、legalhold、quota、anonymous、cors、encrypt、event
生命周期/复制/批处理ilm、replicate、inventory、batch
集群管理admin …、log、qos、kms、idp
AIStor Iceberg 表table …

kms 既可作为顶层命令(mc kms),也可通过 admin 使用(mc admin kms)— 两者配置的是同一台服务。对于身份提供商,请使用顶层命令 mc idp ldap|openid;mc admin idp 已弃用,只会输出重定向提示。log 用于流式传输/查询服务日志,qos 用于管理服务质量(速率)规则 — 两者都仅适用于 AIStor。(mc policy 已弃用 — 存储桶匿名访问请使用 mc anonymous。)

参考文档

根据当前任务,按需加载这些文件(位于同级目录下的 references/ 中):

  • references/connect.md — 深入介绍别名:MC_HOST_ 环境变量形式(含会话令牌/STS)、mc alias set/list/remove、配置文件、TLS(--insecure)、非 MinIO 提供商、按路径或 DNS 查找存储桶。
  • references/output.md — --json NDJSON 解析模式、退出码、非交互式/脚本规则、jq 示例。
  • references/objects.md — 数据平面:ls cp mv rm get put mirror find du tree stat head cat pipe od diff sql watch undo share,以及破坏性标志的确切语义。
  • references/buckets.md — 存储桶生命周期和配置:mb rb version tag retention legalhold quota policy anonymous cors encrypt event。
  • references/data-management.md — ilm(分层/过期)、replicate(存储桶和站点复制)、inventory、batch 作业。
  • references/admin.md — mc admin 控制平面:服务信息、用户和策略、配置、服务/修复/扫描器、退役/再平衡、KMS、层级、SUBNET。
  • references/tables.md — AIStor Iceberg 表:仓库、命名空间、表、目录、分享、复制、维护。

评论

支持 Markdown