小盘机的空间经常不够用:我们可以把Backblaze B2的10G免费空间搬到小鸡上。
你需要:
- 接码手机号和邮箱
- (可选)一个顶级域名,供注册Cloudflare
技术
Rclone
Rclone最大的作用是同步文件。Rclone支持很多稀奇古怪的数据源,以及很多稀奇古怪的功能 - 其中包括将远程文件挂载成FUSE文件系统。
利用类似本文的方法,也可以将Google Drive,Onedrive,Dropbox,远程大盘鸡等挂载成文件系统。
Backblaze B2
Backblaze的服务器在美国西部,虽然只有一个机房但是便宜:每T存储每月5.12 USD。
为什么要白嫖B2而不是其他的存储?
- Backblaze加入了Cloudflare的Bandwidth Alliance,下载流量免费;上传不收费。
Backblaze B2是企业级存储:8个9的可靠性,3个9的可用性。不会像个人网盘删文件或限制API请求频率。
每个账户送10G存储空间,每日1G下载流量,2500次下载请求。对于白嫖够用了。
设置
Backblaze B2
注册Backblaze B2
点击 https://www.backblaze.com/b2/sign-up.html 注册。
注册后使用邮箱和密码登陆:第一次登陆需要绑定手机号。请自由发挥。+86应该可以使用。
创建仓库
在https://secure.backblaze.com/b2_buckets.htm 处,点击“Create a Bucket”。
- Bucket Unique Name: 仓库的名字。必须全局唯一,仅限字母和数字。
- Files in Bucket are: 公开还是私密仓库。私密(private)即可,除非你不在乎公开文件。
- Object Lock: 锁定文件一段时间内不能删除。不需要开启。
记录仓库的名字。点击蓝色的Create a Bucket
创建仓库。
和所有的对象存储一样,B2默认保存文件的所有版本:如果要修改,点击仓库的Lifecycle Settings
,
- Keep all versions of the file (default):默认保存所有版本
- Keep only the last version of the file:只保存最后一个版本。我会使用这个节省空间。
- Keep prior versions for this number of days:在X天内保存旧版本。
- Use custom lifecycle rules:按文件前缀自定义多少天隐藏,多少天删除文件。
创建APP Key
默认的key不能使用:在https://secure.backblaze.com/app_keys.htm 创建一个新key。
点击Add a New Application Key
。
- Name of Key: 名字,供你自己参考
- Allow access to Bucket(s): 你可以让key只能访问某个仓库。
- Type of Access: 只读,只写或读写都可以。除非你知道你在做什么,否则选择
Read and Write
读写均可。 - File name prefix: 只能访问前缀为此项的文件。除非你知道你在做什么,否则留空。
- Duration (seconds): 有效期。除非你知道你在做什么,否则留空。
点击Create New Key
。你会看见创建的key:立即保存,这些信息只出现一次。
记录keyID
和applicationKey
备用。
数据端点
首先找到你的数据端点:在https://tree-sac0-0001.backblaze.com/b2_browse_files2.htm ,点击你创建的仓库;
点击Upload,上传一个文件 - 哪怕只有1字节也行。上传成功后,点击这个文件。
你会看见很多链接:找到Friendly URL
,看域名是什么。例如https://f002.backblazeb2.com/file/bntest/test.tgz
代表 f002.backblazeb2.com
。
记录这个端点值。
Cloudflare
我用自己的域名(2012年至今,应该永久续费)和CF Pro做了如下设置:
f000b2.cnbeining.com CNAME f000.backblazeb2.com
f001b2.cnbeining.com CNAME f001.backblazeb2.com
f002b2.cnbeining.com CNAME f002.backblazeb2.com
f003b2.cnbeining.com CNAME f003.backblazeb2.com
这几个记录都开启了Cloudflare转发。
如果你想用自己的域名,按下面的流程注册Cloudflare并绑定域名,设置CNAME:如果懒得搞,用我提供的域名即可 - 从上文记录的f00*.backblazeb2.com
端点,找到对应的CNAME。实际上我(应该是)不能在Cloudflare上看见访问的具体URL和数据。
记录新的端点域名。
(可选)注册并添加域名
如果你想用自己的域名:
在https://dash.cloudflare.com/sign-up 注册。
官方教程:https://support.cloudflare.com/hc/zh-cn/articles/201720164-%E5%88%9B%E5%BB%BA-Cloudflare-%E5%B8%90%E6%88%B7%E5%B9%B6%E6%B7%BB%E5%8A%A0%E7%BD%91%E7%AB%99
设置CNAME
上文配置B2时记录了端点域名。
去Cloudflare,设置DNS,添加一个CNAME记录指向端点域名。一定要打开Cloudflare转发!
记录你设置的新域名,例如f002b2.cnbeining.com
。
Rclone
安装
Rclone的安装教程在https://rclone.org/install/ 。
最简单的安装方法是在Linux小鸡中运行curl https://rclone.org/install.sh | sudo bash
。
Windows小鸡:在https://rclone.org/downloads/ 找到安装包,下载,解压。下文中所有的rclone
命令都用rclone.exe
替换。
macOS:brew install rclone
即可。
配置
在命令行中敲rclone config
。
Current remotes:
Name Type
==== ====
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> e
按e
,回车。
输入后端昵称,例如b2
。回车。
选择Backblaze B2:
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
...
5 / Backblaze B2
\ "b2"
找到Backblaze B2,输入数字。这里输入数字5。回车。
参考上面配置App Key的记录:account
是上面的keyID
。Application Key
是applicationKey
。
hard_delete
代表硬删除(彻底删除)或软删除(设成隐藏)。为了节省空间我选true
。
Edit advanced config? (y/n)
这里按y
进入高级设置。
一路回车使用默认值即可,除非你知道自己在做什么。
到
Custom endpoint for downloads.
This is usually set to a Cloudflare CDN URL as Backblaze offers
free egress for data downloaded through the Cloudflare network.
This is probably only useful for a public bucket.
Leave blank if you want to use the endpoint provided by Backblaze.
Enter a string value. Press Enter for the default ("").
download_url>
这里输入新端点域名:我这里输入f002b2.cnbeining.com
,
一路回车即可。
测试一下:
rclone ls b2:<你的仓库名>
。你应该能看见仓库里的内容。
挂载
在小盘机上创建一个目录,然后把远程存储挂载过去,例如sudo mkdir /b2
开始挂载:rclone mount b2:/<你的仓库名> /b2 &
。
现在你可以把/b2
目录当做本机使用。不建议大量读写(创建临时文件等),日常使用没有问题。