缘由
在某日,我突然发现博客里的视频加载速度很慢,由于我平时都是挂着 Clash,因此这也是偶然才发现。原因是 Cloudflare 不缓存视频。后来尝试了各种方法,最终选择了也是 Cloudflare 家的 R2 存储。
简介
R2 是 Cloudflare 自家的对象存储服务,和其他对象存储相比,R2 不计算流量,只计算访问,因此对于大文件和小文件来说,访问一次的消耗都是一样的。
R2 免费有每月 10G 存储,100 万次 A 类操作,1000 万次 B 类操作,对于个人用户来说完全足够了。
由于 R2 是国外的,因此域名不需要备份可以直接使用。而且文件的访问速度十分不错。
设置
R2 的申请按照官方的流程来就可以,在申请完成后,我们还可以进行一些设置。
存储桶设置
当我们创建一个存储桶之后,转到设置界面。
我们添加一个域名来访问这个桶。点击连接域添加域名(需要挂到 Cloudflare)。这时候 Cloudflare 应该会自动进行域名的校验。
然后我们配置跨域策略,根据需求即可,这里的设置表示所有来源均可访问。
其他设置根据需要自行设置即可。
缓存设置
我们来到网站设置,选择自己的域名。然后我们选择规则 - 页面规则。
红框部分需要设置,时长可以根据自己需要来定,其他的按需设置即可。
安全设置
然后我们转到安全性-WAF。
我们添加三个规则
第一个规则用于记录访问信息。
第二个规则用于防非法爬虫。(网络搜集的规则)
第三个规则用于放行合法爬虫。(网络搜集的规则)
以下是三条规则的代码:
(http.host contains "your domain" and ip.geoip.country ne "CN")
(cf.threat_score ge 5 and not cf.client.bot) or (not http.request.version in {"HTTP/1.2" "HTTP/2" "HTTP/3" "SPDY/3.1"}) or (not http.user_agent contains "Mozilla/")
(cf.client.bot) or (http.user_agent contains "duckduckgo") or (http.user_agent contains "facebookexternalhit") or (http.user_agent contains "Feedfetcher-Google") or (http.user_agent contains "LinkedInBot") or (http.user_agent contains "Mediapartners-Google") or (http.user_agent contains "msnbot") or (http.user_agent contains "Slackbot") or (http.user_agent contains "TwitterBot") or (http.user_agent contains "ia_archive") or (http.user_agent contains "yahoo")
然后是三条规则的操作:
还有一条速度限制的规则。
表达式为(http.request.uri.path contains "/")
按照如图所示设置即可。
使用方法
我们可以通过存储桶页面的上传按钮来上传文件,也可以使用其他方法来上传(例如 alist,请自行研究)。
当我们要访问文件的时候,可以通过刚才链接的域名来访问,只要输入your domain/filename.suffix
形式的链接即可。
更新日志
- 更新基本内容。