«

搭建永久免费的图床

emer 发布于 阅读:90 运维笔记


用到的工具有:一个域名GitHubCloudflareTelegramEdgeOne

域名用来自定义图片 URL、公开域、CDN 加速,GitHub 用来 Fork 图床仓库代码,并同步更新上游,Cloudflare 会用到 R2 对象存储 (免费 10GB)、Pages、KV,Telegram 会用到 Bot 和 Channel 作为备用存储空间 (无限容量),EdgeOne 作为国内 CDN 加速。

本教程只作为复盘,纯小白请看超级详细的部署教程文档:https://cfbed.sanyue.de

一、部署图床

https://github.com/MarSeventh/CloudFlare-ImgBed

Fork 仓库代码到自己的 GitHub,并用 Cloudflare Pages 部署。


Fork

请注意新版本 Cloudflare 的 Workers and Pages 的仪表盘有所改动,请点击页面右上角的加号新建页面,而不是点击该页面上的创建应用程序。


Cloudflare Pages

连接你的 GitHub 账号后,选择我们刚刚 Fork 的仓库。记得打开Sync fork


导入 Git 仓库

构建命令填写npm install,然后点击保存并部署


构建命令

二、配置 R2 及 KV

创建 R2

Cloudflare -> 存储和数据库 -> R2 对象存储 -> 概述 -> 创建存储桶

起一个你喜欢的名字,地区我们选择亚太地区 (APAC)这样境内访问会快一点。


创建 R2

创建 KV

Cloudflare -> 存储和数据库 -> Workers KV

创建 KV 命名空间 img_url


创建 KV

绑定 R2 和 KV 到 Pages 项目

回到刚刚的 Pages 项目:

Workers 和 Pages -> cloudflare-imgbed (项目名称) -> 设置 -> 绑定 -> 添加 R2 存储桶

变量名img_r2,R2 存储桶选择刚刚创建好的。


绑定 R2

继续添加 KV 命名空间,变量名img_url


绑定 KV

R2 和 KV 绑定完成之后,点击部署 -> 重试部署


重新部署

三、配置域名及 CDN

配置图床前端自定义域名

在 Pages 项目中点击自定义域,添加你的域名,例如img.hackdeacon.com,请提前做好解析,推荐将域名托管到Cloudflare,不开橙云国内访问速度会正常一些(仅作为 DNS 解析)。


自定义域名

配置 R2 存储桶自定义域名

例如r2.hackdeacon.com,此处的自定义域名后面会用来作为 CDN 加速回源地址。


R2 自定义域名

EdgeOne 配置 CDN 加速

大家可以选择不同厂家的 CDN,这里我选择 EdgeOne,因为有永久免费无限额度。

完成测速并分享至不同平台,即可获得四个域名的托管额度。
活动地址 https://edgeone.ai/zh/get-free-plan


EdgeOne

进入套餐管理页面
https://console.tencentcloud.com/edgeone/package

点击去绑定域名,按照提示做好域名的解析,这里我选择 CNAME 接入,因为我的域名 NS 托管在了 Cloudflare。


绑定域名

回到 Cloudflare 创建 R2 存储桶的 API 访问密钥。
R2 -> Account Details -> Manage


R2 API

创建 Account API 令牌,权限建议改成对象读和写,其他保持默认,点击创建后,保存好Access Key IDSecret Access Key


API 令牌

加速域名:后续作为图床的主链接,例如pic.hackdeacon.com

源站配置选择对象存储源站,S3 兼容,源站地址填写刚刚作为 R2 存储桶的自定义域名。 将刚刚创建的公钥和私钥填写进相应的位置,推荐模板选择 网站加速


EdgeOne 配置

添加完后配置 HTTPS 证书。


HTTPS

生效后我们可以用https://www.itdog.cn/http

测试一下加速效果,仅作参考。


加速前


加速后

四、配置 TG

本教程最核心的配置 EdgeOne CDN 加速已结束。

下面懒得写了,请看 TG Bot & Channel 配置教程:

https://cfbed.sanyue.de/deployment/prerequisites.html

配置完后在图床的设置里添加 Telegram 上传渠道。


TG

五、配置图床

图床站点 LOGO、背景、名字等等。

有一个需要注意的点,如果配置了 CDN 加速,记得修改默认 URL 前缀。

还有一个需要注意的点,如果默认 URL 前缀放空不填的状态下,默认图片链接将是图床站点的链接后加/file路径。

例如 https://img.hackdeacon.com/file/123.png


默认 URL

六、防盗链

Cloudflare 主页 -> Scrape Shield -> Hotlink 保护


防盗链

开启之后你的图片只能在你域名下的站点使用,第三方域名站点将会 403。

当然也可以上传图片到hotlink-ok文件夹下,该文件夹内的图片无防盗链保护。