图床就是将图片上传到相关服务商或者个人服务器,通过上传文件的网络地址进行远程访问。可以方便快速的将图片插入到文章中,方便后续图片二次使用、迁移、分享。
本篇介绍CLoudFlare R2+Picgo 方案
CLoudFlare R2 免费用户有10GB/月的存储额度(30天内每天储存峰值的平均值),对于小网站基本足够,超额的存储是$0.015/GB/月,

1.自由在MD,网站中引用图片(picgo上传) 2.防止恶意被刷流量(虽然CloudFlare只收取额外的储存费用,但被刷流量多了容易被封号)
注册账号需要绑定一种支付方式(不扣费,只是用来选择支付方式),可以用信用卡,visa,paypal。
注册地址:https://dash.cloudflare.com/sign-up,验证过邮箱后即可使用。

点击右侧的R2对象储存。

在弹出的界面输入付款方式(信用卡,paypal都可以)

对于中小网站来说,一般超不了。 确认后就可以开通R2对象储存了。


进入桶设置界面

设定访问桶的域名,有两种方法,一种是有一个私有域名(需托管在Cloudflare上),另一个是用R2.dev子域名

继续之后,点连接域,会自动生成dns记录。

之后就能浏览器 https://<自定义域名>/<文件名>访问存储桶里的文件了。
PS:如果域名不托管在CloudFlare,可以单独托管二级\三级域名,只需要给二级域名添加一条NS记录指向原托管即可。

点击允许访问,就可以用 https://pub-853c2f66b8ef43ae98ecd186f4be34f8.r2.dev访问桶
缓存规则一般设定两个:浏览器缓存和边缘缓存。 浏览器缓存:访问后,所需文件储存在浏览器的本地目录,在一段时间内,再次访问优先访问本地文件 边缘缓存:访问后,缓存在最近的CDN存一份,在一段时间内,优先访问CDN中的文件
进入域名页面->规则->页面规则

创建页面规则

URL 填 img.a.com/* 添加设置:缓存级别 – 缓存所有内容 添加设置:浏览器缓存 TTL – 几个小时自己选(8小时) 添加设置:边缘缓存 TTL – 一个月(图片内容只有存在或者删除两个状态,所以越长越好) 保存。此时如果有人刷流量,理论上图片都是本地缓存或者CDN缓存给的,不会走到R2对象存储。

只能通过指定的网站来访问(防君子不防小人,可以伪造refer信息,照样刷流量)。 但是还是有点作用,比如别人爬取文章盗用的时候,图片是无法访问的。
安全性->WAF,创建规则



一般不需要设置(出于安全考虑这里也不建议设置)。如果遇到 R2 作为博客图床,但是图片打不开的情况,F12 控制台发现遇到 CORS 问题,则需要配置。
官方文档:Configure CORS
进入你想设置 CORS 的存储桶的设置,拉到下面:

配置为允许特定源 比如要设置为允许两个域名:
[
{
"AllowedOrigins": [
"https://blog.a.com",
"https://blog.b.top"
],
"AllowedMethods": [
"GET"
]
}
]配置为所有网站源可访问(多平台文章引用)
[
{
"AllowedOrigins": [
"*"
],
"AllowedMethods": [
"GET"
]
}
]配置为允许所有源 如果上面配置为特定源后仍然不能修复问题,或者作为随机图片 API 的图床提供服务需要设置为所有源可访问,那么需要如下设置:
[
{
"AllowedOrigins": [
"*"
],
"AllowedMethods": [
"GET",
"POST",
"PUT",
"DELETE",
"HEAD"
],
"AllowedHeaders": [
"*"
]
}
]有的api令牌就可以用软件(PICGO)自动上传图片了。
创建令牌


需要选择内容 令牌名 权限(对象读和写) 指定储存桶 TTL时间(永久)

记住生成的密钥,picgo软件里面设置需要。

在插件设置中,添加常用插件。 S3插件:用来登录S3的图床 compress-next:用来压缩图片至webp。 watermark:给图片打水印 autoback:用来备份图床


安装好后,里面就新增了amazon S3的图床设置。


这里有几项配置需要尤其注意。
Access Key ID(访问密钥 ID)Secret Access Key(机密访问密钥)Bucket 名称,如创建R2的桶的名字 img{fileName}.{extName} (或者{fullName})来保留原文件的文件名和扩展名。xxx.r2.cloudflarestorage.com格式的 S3 Endpointhttps://xxx.r2.dev格式的域名或自定义域名,如我配置的https://img.a.comno关闭,否则会在最终路径里面显示有桶名。yes开启,如果出现证书错误可以关闭public-readfalse完成上述配置后,我们就可以在「上传区」直接拖入文件进行图片上传了,如上传后显示无误则为配置成功,生成的链接会自动在系统剪贴板中,直接在需要的地方粘贴即可。
PS:1.picgo还可以自定义连接格式(Picgo→自定义链接格式),之后上传链接界面选custom即可


2.安装picgo的vscode插件-markdown transfer img,可以批量替换md中图片至云端。 3.使用piclist来平替picgo,piclist功能更多