Picgo对接Cloudflare R2的方法

488次阅读
没有评论

前言:

新浪图床彻底挂了…准备转投自建存储。

Picgo对接Cloudflare R2的方法

存储:Cloudflare R2

R2提供了相对低廉的价格和0流量费用,如图。

(完整版请见Pricing · Cloudflare R2 docs

Picgo对接Cloudflare R2的方法

前端:Picgo

(毕竟不能手搓S3 API吧

Picgo是Github上热门的图床软件,项目地址可见:

PicGo

流程:

1.安装Picgo及Node.js

请参阅Picgo项目地址

2.启用CF-R2,不再赘述

(可能需要准备一张信用卡/Visa Master借记卡亦可)

3.新建一个储存桶

Picgo对接Cloudflare R2的方法

4.创建完成后,回到Overview,点击 “Manage R2 API Token” ,Create API Token

Picgo对接Cloudflare R2的方法

Picgo对接Cloudflare R2的方法

注意,API需要Edit权限

Picgo对接Cloudflare R2的方法

会生成一个

Access Key ID

Secret Access Key

请保留备用

5.为CFR2绑定自定义域名:

进入你创建的存储桶(Bucket),点击设置(Setting)

在PublicAccess里面,选择Connect

Picgo对接Cloudflare R2的方法

输入一个子域名即可,需要注意的是,你的域名必须托管在Cloudflare上。Cloudflare会自动添加解析。(你也可以使用R2.dev域名,但是R2.dev域名具有请求速率限制,也不适用于缓存和安全性,不建议生产环境使用)。

注意,请设置CORS Policy,以允许外部调用。(CF的意思是直接启用Public Access亦可实现目的)在我初次撰稿时,cf尚未提供此选项,我需要调整存储桶的对应域的改写规则,利用Cloudflare的规则修改HTTP相应头,加入一个

Access-Control-Allow-Origin * header 来允许任意源的加载

现在R2存储桶好像支持直接修改CORS了,点击edit即可

[
{
"AllowedOrigins": [
"*"
],
"AllowedMethods": [
"GET"
]
}
]

注意,配置成*会允许任意来源的加载,这是不安全的,在生产环境中,你还应该加入鉴权等。

但是个人存个图片而已,问题不大。

请参考:配置 CORS ·Cloudflare R2 文档

随后进入Picgo软件,安装S3插件

Picgo对接Cloudflare R2的方法

进入Amazon S3,进行设置

Picgo对接Cloudflare R2的方法

把上面生成的 Access Key ID 填入 应用密钥IDSecret Access Key  填入 应用密钥

桶就是bucket名,直接填写即可

文件路径实际上也包含重命名规则,可按如下格式填写

payload 描述
{year} 当前日期 – 年
{month} 当前日期 – 月
{day} 当前日期 – 日
{fullName} 完整文件名(含扩展名)
{fileName} 文件名(不含扩展名)
{extName} 扩展名(不含.
{md5} 图片 MD5 计算值
{sha1} 图片 SHA1 计算值
{sha256} 图片 SHA256 计算值

 

地区填写   us-east-1  切记,必填

(2023.5.23更新,cf好像增加了存储桶的地域选择,这个请参照实际文档吧)

Picgo对接Cloudflare R2的方法

“自定义节点”填写 框内的一串链接,你可以轻易的在R2页面找到,也被描述为“S3 API”。

建议绑定自定义域名。

 

自定义域名填写你在cloudflare R2里面设置的自定义域名,也可填写CF提供的Public Bucket URL,不要忘记开头的 https:// (末尾无需“/”)

开启“BucketEndpoint”功能

意为针对Bucket的Endpoint,而非针对API的Endpoint。

 

R2桶本质上和S3是相似的,还有很多操作(比如设置鉴权等)也可以一并完成。

完整请见:wayjam/picgo-plugin-s3: PicGo S3 插件 (github.com)

正文完
 
评论(没有评论)
验证码