用 Blob0 连接 Backblaze B2

在 Mac 上用 Blob0 通过 S3 兼容 API 连接已有 Backblaze B2 存储桶:匹配区域和 endpoint,使用手动创建的 application key,并核对 capability。

本教程适用于已有 Backblaze B2 Cloud Storage 存储桶。Blob0 通过 B2 的 S3 兼容 API 连接;它是对象客户端,不是 Backblaze Computer Backup。

下载与安装指南

连接前准备

  • 准备好已有 B2 存储桶及其专属 endpoint 和 Region,再获取限定到该桶和所需操作的 application key。Test connection 需要此密钥允许列举桶根目录。
  • 只有已配置直链域名时才填写可选的 Public / custom domain。B2 密钥映射与 capability 说明见下方「服务商配置注意事项」。
服务商配置注意事项

从 B2 存储桶详情复制区域 S3 endpoint 和 region。例如,us-west-004 区域的存储桶可使用 https://s3.us-west-004.backblazeb2.com;请以自己存储桶显示的值为准。

匹配存储桶区域 endpoint
使用该 B2 存储桶详情中的 endpoint 和 region。us-west-004 示例为 https://s3.us-west-004.backblazeb2.com;其他区域的存储桶不要直接套用此地址。存储桶名称单独填写。
创建 S3 兼容 application key
手动创建 application key:keyID 对应 Access Key ID,applicationKey 对应 Secret Access Key。Backblaze 自动创建的 master app key 不能用于 S3 兼容 API 认证。
允许列举桶根目录
使用能够列举目标桶根目录的 application key。密钥设有 file name prefix 限制时,B2 要求列表请求携带匹配的前缀。Blob0 使用空前缀测试连接,连接表单没有起始前缀字段,因此即使密钥能访问获授权前缀内的文件,这类限制仍可能导致 AccessDenied。
只授予所需的 B2 capability
listFiles 用于列举对象,readFiles 用于读取和下载,writeFiles 用于上传;B2 将 Copy Object 映射到 readFiles 和 writeFiles,重命名或移动流程可能需要两者。按名称删除需要 writeFiles,删除指定版本需要 deleteFiles;Backblaze 对 Delete Object 操作通常建议同时授予两者。Blob0 按对象 key 删除且不传 version ID,因此不会删除指定历史版本。
按需限制存储桶发现权限
对于限定到单个存储桶的 application key,Backblaze 建议在 SDK 或集成会调用 ListBuckets 时启用 listAllBucketNames。它只让集成看到存储桶名称,不会授予其他存储桶的对象访问权。Blob0 要求填写具体存储桶,不会显示账户中的所有存储桶;若区域探测或权限报错,请按 Backblaze capability 对照表核对 ListBuckets 和 HeadBucket。

B2 application key 的 capability 不等于完整 AWS IAM 或 ACL 兼容。Blob0 使用 B2 支持的 S3 兼容对象操作和你提供的密钥。

服务商特有限制

  • Blob0 是 S3 兼容对象客户端,不是 Backblaze Computer Backup,也不是 AWS 账户控制台。B2 文档列出其 S3 兼容 API 范围,不应假设所有 AWS IAM 或 ACL 功能都适用。
  • B2 的 S3 按对象名称删除会添加 delete marker。Blob0 发送对象 key 时不带 version ID,因此从当前列表删除不会移除指定历史版本或清空版本历史;请在 B2 中管理版本和生命周期规则。
  • Blob0 连接你指定的存储桶,不会列举或管理 Backblaze 账户中的所有存储桶。

填写 Blob0 连接表单

首次启动时使用连接表单;之后添加其他桶,可打开 Settings → Connections → Add connection。在 Provider 选择 Backblaze B2,再填写同一存储桶对应的 endpoint、Region 和 application key。

填写 Blob0 连接表单
应用字段填写内容
服务商(Provider)Backblaze B2
连接名称(Connection name)本地显示名称,例如 B2 archive,不会修改存储桶名称。
S3 API endpoint存储桶详情里的区域 endpoint。示例:https://s3.us-west-004.backblazeb2.com。
存储桶(Bucket)准确的已有 B2 存储桶名称,不带 URL 或文件夹前缀。
区域(Region)存储桶所在区域;上面的 endpoint 示例对应 us-west-004。
Access Key IDapplication key ID(keyID),不要使用 master key ID。
Secret Access Key对应的 application key(applicationKey),不要使用 master app key。
公开域名 / 自定义域名(Public / custom domain)可选。私有访问可留空;此字段不用于 S3 连接认证。
使用虚构配置的 Blob0 连接表单: 用 Blob0 连接 Backblaze B2
真实应用界面,使用虚构配置;不包含可用密钥。

测试并保存连接

  1. Test connection

    点击 Test connection。Blob0 会列举所选存储桶的根目录;空桶可能显示 0 items。测试成功只证明本次列表请求成功,不代表能够读取对象内容,也不代表拥有上传、覆盖或删除权限。

    B2 连接测试会用空前缀列举所选桶的根目录。如果 application key 限制到文件名前缀,B2 可能拒绝这次列表请求,即使密钥可以访问获授权前缀内的对象。

  2. Add connection

    测试成功后点击 Add connection,保存配置并连接。Blob0 将访问密钥保存在 macOS 钥匙串中;配置文件只保存非敏感连接信息。

可选:验证已获授权的传输操作

只有存储桶所有者同意进行写入测试时,才用新的测试名称上传一个很小的临时文件,下载并核对内容,然后删除这个测试对象。先确认桶策略和保留规则;不要拿已有对象做测试文件。

连接问题排查

AccessDenied
使用手动创建的 application key,不要使用 master app key。确认它有列举桶根目录的 listFiles 权限;文件名前缀限制也可能与空前缀测试冲突。
SignatureDoesNotMatch
核对字段映射:keyID 填 Access Key ID,applicationKey 填 Secret Access Key。随后检查桶的区域 endpoint 和 Region。
NoSuchBucket 或 404
检查准确桶名,并使用该桶详情中提供的区域 endpoint。其他区域桶的地址不能直接复用。
列表成功但操作被拒绝
只授予所需 B2 capability:listFiles 用于列举,readFiles 用于读取和下载,writeFiles 用于上传。重命名或移动使用的复制操作可能同时需要 readFiles 和 writeFiles。
删除和历史版本
B2 S3 按对象名删除会添加 delete marker。Blob0 不指定 version ID;历史版本和生命周期规则需在 Backblaze 工具中管理。

继续使用 Blob0

官方参考文档