给你和 AI Agent 用的 S3 / R2 命令行
blob0 提供支持 ls、put、get、mv、cp、rm、find 和 share 的命令行工具,具备 dry-run、JSON 输出和存储在 macOS 钥匙串中的凭证,并为 Claude Code、Codex 和 Cursor 提供官方 Agent Skill。支持 Cloudflare R2、S3、B2、Wasabi 和 MinIO。
在终端处理日常对象存储任务,也可以让 AI Agent 调用同一个本地程序。CLI 使用你已经在 Blob0 桌面应用中设置的连接配置和凭证。
快速开始
安装 Blob0,在桌面应用中连接存储配置,然后到「设置 → CLI & Skills」复制 CLI 可执行文件路径。
- 下载 Blob0,并在 Mac 上首次打开应用。
- 进入「设置 → CLI & Skills」,点击 CLI 路径旁的复制按钮。将复制的完整路径粘贴到终端命令或 Agent 的 shell 命令中。
- 在 Blob0 中连接并保存配置。存储命令需要该配置的凭证保存在 macOS 钥匙串中,并且当前有有效许可或仍在试用期内。
- 默认使用当前激活的连接;也可以加上全局选项 --profile 配置名或 ID 来选择另一项已保存配置。
alias blob0='/absolute/path/copied/from/Settings'
blob0 profiles想缩短命令,可以在 shell 配置中添加 alias,或在已加入 PATH 的目录中创建符号链接。复制的可执行文件路径如果含空格,请放在引号中。
命令速查
使用全局选项 --profile 配置名或 ID,在命令前选择已保存的连接。put、get、mv 和 cp 支持 --dry-run、--no-clobber 与 --concurrency N(默认 4,范围 1–32);rm 支持 --dry-run。
输出格式与退出码
{
"ok": true,
"dryRun": true,
"total": 1,
"succeeded": 0,
"skipped": 0,
"failed": 0,
"bytes": 0,
"items": [
{ "src": "./report.csv", "dst": "reports/report.csv", "size": 2048, "status": "planned" }
]
}{"error":{"kind":"...","message":"...","code":null}}
0 成功(允许有跳过项)
1 其他、I/O 或已取消
2 命令用法错误
3–9 not_found、auth、license、config、network、s3、conflict
10 多项批次中存在失败项目命令结果默认以 JSON 写入 stdout,批量命令还会提供每项状态。cat 输出原始字节,skills print 输出 Markdown;help 和 version 使用命令解析器的纯文本。命令错误以 JSON 写入 stderr;多项批次中的失败项目保留在 stdout 的 items 中,退出码 10 表示应检查这些项目。
安全操作流程
写入前使用 --dry-run 检查计划。它会读取列表或对象元数据来生成计划,不会写入对象数据。检查将影响的 key 和目标路径,确认后再去掉 --dry-run 执行。
--dry-run
put、get、mv、cp、rm 支持预演;只列出计划项目,不执行写入或删除。
--no-clobber
目标已存在时不覆盖。批量操作会跳过已存在项目;非递归的单对象操作会返回冲突。
递归操作
只有确认前缀和所有受影响 key 后才使用 -r。不带斜杠的递归 rm key 可能同时匹配该对象和 KEY/ 前缀。
find 与前缀操作
find 只筛选匹配的 key,不会缩小后续 mv 或 rm 前缀操作的范围。执行递归操作前,先检查前缀下的全部对象。
blob0 --profile archive find "" exports/ --older-than 90d --sort date
blob0 --profile archive ls exports/ -rblob0 ls tmp/ -r
blob0 rm tmp/ -r --dry-run
# 检查每个 status 为 "planned" 的项目
blob0 rm tmp/ -r删除不可撤销。递归删除存储桶根目录(空 key 或 /)时,必须加 --yes-really-delete-everything 才会继续。即使加了确认选项,也应先预览根目录操作,并核对当前配置指向的存储桶。
blob0 rm "" -r --dry-run --yes-really-delete-everything
# 完整检查计划后再执行:
blob0 rm "" -r --yes-really-delete-everythingAWS CLI S3 命令对照
Blob0 操作的是当前配置中的存储桶,因此参数传对象 key 或前缀,不传 s3://bucket/ URI。下列命令覆盖常见文件操作;Blob0 并不是完整 AWS CLI 的直接替代品。
单独运行 CLI 改变存储桶后,桌面应用不会实时刷新文件列表。请在 Blob0 中手动刷新或重新打开对应前缀以加载最新列表。
如何在 Blob0、s5cmd、rclone 中选择
这些成熟的开源工具面向不同工作流。s5cmd 将自己定位为支持并行操作的 S3 与本地文件系统工具;rclone 提供面向多种云存储后端的命令,包括 sync 和 mount 工作流。
Blob0
面向 macOS 桌面使用的对象存储客户端,并提供专注于常见操作的本地 CLI。GUI 和 CLI 共用已保存配置与钥匙串凭证;官方 Skill 可教会支持它的 Agent 使用命令。
s5cmd
开源、专注 S3 的命令行工具,支持本地文件和对象的并行操作。可用于大批量任务和 shell 自动化。
rclone
开源命令行工具,支持更多存储后端,以及更广泛的传输、同步和挂载工作流。可用于跨服务商脚本和服务器任务。
Blob0 CLI 不包含 s5cmd 或 rclone 的全部命令、挂载能力或通用同步能力。按自动化和规模选择合适工具;Blob0 的特点是 Mac 图形界面、CLI、连接配置和钥匙串共用一套本地设置。实际表现也取决于 Mac、网络和存储服务商。
为 AI Agent 配置 Blob0 Skill
内置的官方 Skill 是一个 SKILL.md 指令文件。可从「设置 → CLI & Skills」导出,也可以使用以下命令。选择 Claude Code、Codex 或 Cursor 使用的 Skills 目录;Blob0 会导出文件,但不会代替你配置 Agent。
blob0 skills list
blob0 skills print blob0
blob0 skills export ~/.claude/skills内置 SKILL.md 的开头部分
---
name: blob0
description: Operate a Cloudflare R2 or any S3-compatible bucket with the blob0 CLI. Use to browse, upload files or folders, download, organize, share, audit, or safely clean up the user's storage.
---
# blob0 CLI
Use the desktop binary (path in Settings → CLI & Skills), with a configured
profile and valid license/trial. Credentials stay in the OS keychain.Skill 负责教 Agent 如何使用本地 CLI。Agent 仍需能够访问这台 Mac 的 shell,也需要和用户运行命令时相同的 Blob0 连接配置、凭证及有效许可或试用期。
CLI 不是 MCP Server
Blob0 提供的是本地可执行程序,用户或 Agent 可通过终端或 shell 工具运行。Skill 是这套命令的工作流说明。Agent 可以复用已有 shell 权限,读取 JSON 输出和批次中每项状态,并检查进程退出码。Blob0 目前没有提供 MCP 工具;使用 CLI 不需要额外运行服务或配置 MCP。无法运行本地 shell 命令的 Agent 不能使用这项 CLI 集成。
凭证安全
访问密钥保存在 macOS 钥匙串中。CLI 连接时读取所选配置对应的凭证;profiles 列表只包含连接元数据,不含访问密钥或 Secret。不要把凭证写进命令参数,也不要长期保存或记录预签名 URL。
支持的服务商
Blob0 配置支持 Cloudflare R2、Amazon S3、Backblaze B2、Wasabi、MinIO、阿里云 OSS、腾讯云 COS 或其他 S3 兼容 endpoint。各服务商仍需使用匹配的 endpoint 设置,并受其 API 兼容范围限制。
常见问题
使用 CLI 时需要打开 Blob0 吗?
桌面应用提供已安装的可执行程序、已保存配置和钥匙串凭证。先打开 Blob0 完成设置;存储操作还需要有效许可或仍在试用期内。
它能完全替代 AWS CLI 吗?
可用它通过 Blob0 配置操作对象和文件,但它不提供 AWS CLI 的全部云服务、IAM、存储桶管理或同步命令。
AI Agent 可以上传或删除文件吗?
具备本地 shell 权限的 Agent 可以运行相同命令。请谨慎授权其操作范围;写入或删除前可用 --dry-run 审查计划。
--dry-run 会修改存储内容吗?
不会执行对象写入或删除。CLI 仍可能读取对象列表或元数据来生成计划,因此会发出读取请求。
可以在终端运行已配置的同步任务吗?
不可以。blob0 sync list 只读取已保存的文件夹配置,且不会提供最近运行状态;请在 Blob0 桌面应用中启动和查看同步。
CLI 上传后 Blob0 会自动刷新吗?
独立 CLI 进程不会触发桌面应用实时刷新。请手动刷新或重新打开受影响的前缀以读取最新列表。
开始使用 Blob0
下载 macOS 应用,连接已有存储桶,再到「设置 → CLI & Skills」复制 CLI 路径。