关于 b2-cloud-storage
通过 B2 CLI 管理 Backblaze B2 存储的技能,涵盖文件查找、用量审计、成本估算、清理和安全检查。默认只读;删除前必须先试运行并获得明确确认。
主要功能
- 01列出并检查存储文件
- 02审计用量、旧数据与重复项
- 03估算每月存储成本
- 04检查存储桶安全设置
- 05删除前要求先试运行
适用场景
- 01查找陈旧或过大的存储数据
- 02估算 B2 存储费用
- 03检查存储桶安全状况
- 04在删除保护下规划清理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ backblaze-labs/ claude-skill-b2-cloud-storage --skill b2-cloud-storage安装后在 Claude Code 中输入/b2-cloud-storage确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
b2-config.example.json.claude-plugin/plugin.jsonreferences/b2-cli-reference.mdcleanup-playbook.mdsecurity-review.mdsetup.mdscripts/storage_audit.py详细介绍
B2 云存储管理
管理 Backblaze B2 云存储:列出文件、审计用量、估算成本、清理过期数据并检查安全状况。
安全规则(必须遵守)
- 绝不运行
b2 account get、b2 account clear或任何b2 key *子命令——这些命令会暴露或修改凭据。 - 绝不读取
~/.b2_account_info或任何匹配*b2_account_info*的文件——这是 B2 凭据数据库(SQLite)。 - 始终先运行
b2 rm --dry-run,再执行任何实际删除;向用户展示将要删除的内容,并要求用户明确回复“yes”后再执行。 - 绝不在未事先告知用户安全影响并获得明确确认的情况下,将存储桶改为
allPublic。 - 默认只读——只有用户明确提出要求时,才执行写入或删除操作。
- 绝不将 API 密钥、应用程序密钥或账户 ID 存储或写入任何文件。
- 如果用户在聊天中粘贴密钥值,而不是在终端中输入,请立即警告用户并建议轮换密钥。绝不回显、存储或引用对话中出现的密钥值。
首次使用流程
- 检查是否已安装 B2 CLI:
b2 version。如果未安装,请让用户在 Agent 环境之外安装 CLI,然后重新运行b2 version——详情请参阅references/setup.md。 - 验证 CLI 是否已授权:
b2 ls。如果因身份验证错误而失败,请按照references/setup.md引导用户操作。 - 检查项目根目录下是否存在项目级配置
.claude/b2-config.json。如果不存在,请向用户询问存储桶和前缀,并创建配置文件。
交互式身份验证说明
不带参数的 b2 account authorize 会通过交互式提示读取密钥,Agent 无法操作此提示。用户有以下两种选择:
- 在终端中自行运行——在 Claude Code 中,他们可以输入
!b2 account authorize,直接在会话中执行。 - 将 keyID 和 applicationKey 作为位置参数传入:
b2 account authorize <keyID> <appKey>(密钥会出现在 shell 历史记录中,安全性较低)。 - 或者,在运行 B2 命令前设置
B2_APPLICATION_KEY_ID和B2_APPLICATION_KEY环境变量(推荐用于脚本和 CI)。
项目级配置
项目级配置位于 .claude/b2-config.json:
{
"bucket": "my-project-bucket",
"prefix": "",
"accountInfoPath": "~/.b2_account_info"
}
| 字段 | 用途 |
|---|---|
bucket | 此项目的默认存储桶名称 |
prefix | 可选前缀,用于限定所有操作的范围(例如 data/models/) |
accountInfoPath | B2 凭据文件的路径——允许不同项目使用不同密钥 |
如果 accountInfoPath 与默认值不同,运行 b2 命令时请在前面加上 B2_ACCOUNT_INFO=<path>。此文件仅存储存储桶名称和路径——绝不存储 API 密钥。
常见操作
列出和搜索
b2 ls b2://<bucket> # top-level
b2 ls -r b2://<bucket> # recursive
b2 ls -r --json b2://<bucket> # JSON for scripting
b2 ls --versions -r --json b2://<b> # include old versions + hide markers
b2 ls b2://<bucket>/<prefix> # prefix-scoped
检查文件
b2 file info b2id://<fileId>
存储审计(用量、过期文件、大文件、重复文件、成本)
python scripts/storage_audit.py <bucket>
python scripts/storage_audit.py <bucket> --json
python scripts/storage_audit.py <bucket> --stale-days 180 --large-mb 500 --prefix-depth 2
报告实时存储量与计费存储量、未完成的大文件、旧版本、隐藏标记、基于 SHA1 的重复文件,以及估算的月度成本。
清理(有破坏性)
请参阅 references/cleanup-playbook.md。绝不跳过试运行步骤。
生命周期规则
b2 bucket get <bucket>
b2 bucket update --lifecycle-rules '<json>' <bucket> allPrivate
生命周期规则的 JSON 格式请参阅 references/b2-cli-reference.md。
安全审查
完整检查清单(存储桶类型、SSE、CORS、对象锁定、复制、生命周期覆盖范围)请参阅 references/security-review.md。
参考资料
references/setup.md— 首次使用设置指南(安装、创建应用程序密钥、授权)references/cleanup-playbook.md— 包含试运行的安全删除流程references/security-review.md— 存储桶安全审计检查清单references/b2-cli-reference.md— CLI v4 命令参考
评论
支持 Markdown