把你的 Backblaze B2 存储连接到 WildKite
让 WildKite 指向你的 Backblaze B2 存储桶,你的音乐和视频就一直留在自己的存储里。我们会帮你对应好 Backblaze 的几个不同叫法、创建一个安全的访问密钥,并把连接跑通。
开始前准备
- 一个已经开通 B2 Cloud Storage 的 Backblaze 账号。
- 一个用来放媒体的存储桶(新建一个最省事)。
- 能在 Backblaze 里创建新访问密钥的权限(不是那把账户主密钥)。
完成后你将得到
- 一个 WildKite 能访问到的 Backblaze B2 存储桶。
- 把 Backblaze 的密钥正确填进 WildKite 的对应字段里。
- 一个一次就能通过 WildKite 测试的连接。
Backblaze 的叫法和 WildKite 的叫法
Backblaze 帮你存好文件没问题,只是它给几个设置起的名字和 WildKite 不太一样。这不是出错了,单纯是叫法对不上。把下面这张小对照表放在手边,你就清楚哪一项该填到哪里。
| WildKite 字段 | 填写值 | 为什么重要 |
|---|---|---|
| WildKite 里的 Access Key ID | Backblaze 叫它 Application Key ID |
这是密钥公开的那一半,用来标识它的身份。在 Backblaze 的部分页面里也写作 keyID。 |
| WildKite 里的 Secret Access Key | Backblaze 叫它 Application Key |
这是密钥保密的那一半,相当于密码。Backblaze 只在创建时显示这一次,所以要马上复制下来。 |
| WildKite 里的 Endpoint | Backblaze 叫它 S3 Endpoint |
WildKite 用来访问你存储桶的那个网址。可以在 Backblaze 里这个存储桶的页面上找到。 |
| WildKite 里的 Region | 你 Endpoint 中间的那一段 |
如果你的 Endpoint 是 s3.us-west-001.backblazeb2.com,那么 Region 就是 us-west-001。 |
把存储桶准备好
-
用一个能按标准方式通信的存储桶
WildKite 通过各大云盘通用的那套存储“语言”和 Backblaze 对话。一些很早期、在 Backblaze 还没支持它之前创建的存储桶,可能听不懂这套语言。如果你的存储桶用了好几年,或者你拿不准,直接新建一个最省心。
-
保持存储桶私有
你不需要把任何东西设成公开。播放时,WildKite 会临时发放有时限的链接来取你的文件,你的原始媒体始终留在自己的 Backblaze 账号里。
-
复制 S3 Endpoint
打开 Backblaze 里这个存储桶的页面,把上面显示的 S3 Endpoint 复制下来,放在手边,待会儿要粘到 WildKite 里。
创建一把安全的访问密钥
访问密钥就像一张你交给 WildKite 的访客通行证,让它能访问你的存储桶。我们会专门为 WildKite 做一把,只限定到一个存储桶,这样它就碰不到你账号里的其他东西。
-
在 Backblaze 里打开 App Keys
进入 Backblaze 控制台,找到 App Keys,选择新建一个 Application Key。
-
不要用那把主密钥
Backblaze 提供了一把账户级的主密钥,但它在这里用不了,而且权限太大、不适合交出去。请始终另外新建一把单独的密钥。
-
把密钥限定到你这一个存储桶
当 Backblaze 问这把密钥能用哪个存储桶时,选你给 WildKite 准备的那一个。这样这张通行证就只开一扇门。
-
允许密钥查看存储桶名称
当你把密钥锁定到单个存储桶时,Backblaze 还会给一个选项,让它能查询存储桶名称的列表,把这个选项打开。
你连接时 WildKite 会做一次快速检查,密钥被允许这个小小的查询时,检查结果会更清楚。只限定到文件的密钥也能用,但万一检查失败,原因会更难看明白。
-
马上把两段值都复制下来
Backblaze 会把 Application Key ID 和 Application Key 一起显示,其中保密的那段只出现这一次。关页面之前把两段都复制好,并把 Application Key 当成密码一样保管。
填写 WildKite 的字段
现在把这些都汇总到 WildKite 里。每个框该填什么,看这里。
| WildKite 字段 | 填写值 | 为什么重要 |
|---|---|---|
| Provider | Backblaze B2 |
如果列表里有 Backblaze B2 这一项,选它。 |
| Region | us-west-001(只是示例) |
填你自己 Endpoint 中间的那一段,不要照抄这个示例,除非刚好一样。 |
| Endpoint | https://s3.<region>.backblazeb2.com |
把 Backblaze 给你显示的完整 S3 Endpoint 原样粘进来。 |
| Bucket | <你的存储桶名称> |
和 Backblaze 里显示的一字不差地填,连横杠都要带上。 |
| Prefix | media/(可选) |
留空就用整个存储桶。如果桶里还放着别的东西,想让 WildKite 只看某个文件夹,就在这里填上文件夹名。 |
| Access Key ID | <你的 Application Key ID> |
Backblaze 里公开的那一半。 |
| Secret Access Key | <你的 Application Key> |
Backblaze 里保密的那一半。 |
如果测试没能一次通过
Backblaze 和 WildKite 对请求该怎么签名的方式是一致的,而这一步由 WildKite 自动帮你处理,你永远不需要手动设置它。
连接失败时,原因几乎总是三个小地方之一。按这个顺序检查:先 Endpoint,再 Region,最后是密钥。下面这张表列出了每一项应该是什么,以及最容易出错的地方。
| 检查项 | 应该是什么 | 通常错在哪 |
|---|---|---|
| Endpoint | 从存储桶页面原样复制的那个 S3 Endpoint | 打错字,或者复制了另一个存储桶的 Endpoint。 |
| Region | Endpoint 中间那一段,比如 us-west-001 | 留成了 auto,或者用了亚马逊的 region,和 Backblaze 对不上。 |
| 密钥 | 一把限定到你存储桶的新密钥 | 误用了账户级的主密钥,或者一把旧密钥。 |
常见小问题和解决办法
| 你看到的提示 | 为什么会这样 | 怎么办 |
|---|---|---|
| access denied(访问被拒绝) | 这把密钥没被允许访问这个存储桶。 | 重新做一把限定到你存储桶的密钥,并允许它查看存储桶名称,测试就能顺利通过。 |
| 提示里出现 authorization header 之类的错误 | Region 和 Endpoint 对不上。 | 直接从你的 S3 Endpoint 里取 Region,也就是中间那一段。 |
| Bucket not found(找不到存储桶) | 存储桶太老用不了这种方式,或者名称打错了。 | 新建一个存储桶,或者把 Backblaze 里准确的存储桶名称粘过来。 |
| 从浏览器上传被拒绝 | Backblaze 拦下了直接从你浏览器发出的上传。 | 按 WildKite 连接页面建议的那条共享规则(CORS)加上,再重试。CORS 是一项设置,用来告诉 Backblaze:允许你的浏览器直接发送文件。 |
正式用之前再确认一下
- 每个连接的地方用一把单独的密钥,这样你可以关掉其中一把而不影响其他。
- 没有充分理由就别用账户级的密钥,限定到存储桶的密钥更安全。
- 把你的 S3 Endpoint 和 Region 记在一起放好,免得以后到处找。
- 万一某把密钥出现在了截图或客服对话里,就新做一把、停用旧的。
常见问题
可以连接我已经有的存储桶吗?
可以,只要它不是 Backblaze 那种很早期、没法按标准方式访问的存储桶。如果你的桶用了好几年,或者拿不准,新建一个是最省事的办法。
为什么 WildKite 叫 Access Key ID,Backblaze 却叫 Application Key ID?
它们是同一样东西的两个名字。WildKite 用各家云盘通用的叫法,Backblaze 用自己的叫法。Access Key ID 就是 Backblaze 的 Application Key ID,Secret Access Key 就是 Backblaze 的 Application Key。
Region 该填什么?
填你 Endpoint 中间的那一段。如果 Endpoint 是 s3.us-west-001.backblazeb2.com,Region 就是 us-west-001。不要填 auto,也不要用亚马逊的 region。