爱极客专注分享-好玩的docker应用-源码分享

利用Telegraph和Cloudflare自建图床实现外链图片存储

利用Telegraph和Cloudflare自建图床实现外链图片存储

Telegraph 简介

Telegraph 是一个免费开源的平台,通过它可以创建和共享图像、视频与文本。

Cloudflare 简介

Cloudflare 是一家全球 CDN安全提供商,可以提高网站的性能和安全性。

网站、博客和电商平台等,图片是必不可少的元素。当然图片需要存储空间和带宽来支持。对于流量小的站点来说,这还好。但如果是大流量的站点,将产生一些额外的存储和带宽费用,不太划算。针对这种情况,我们往往可以采取外链图片的方式。

但是,外链图片会占用大量的带宽和服务器资源。因此,大部分站点只供站内观看,不允许外链。而一般可外链图片的站点会给免费用户提供比较少的月流量,使用比较受限,只有成为付费用户之后才能提升外链流量。当然,也有网站专门提供免费外链图片服务。此类网站通常称之为图床,不限流量。

自建图床的常用方式有阿里云 OSS、GitHub、Google Drive 等。本文并不使用这些常用的自建图床方式,而是使用 Telegraph 和 Cloudflare 来自建图床。

本文将使用其网站镜像和访问控制的能力,实现 GitHub 站点的镜像,并通过自有域名实现在墙内的访问。

1.Fork Telegraph-Image 仓库

访问 Telegraph-Image 仓库地址,fork 到个人仓库:

利用Telegraph和Cloudflare自建图床实现外链图片存储

2. 创建应用并关联 Fork 的仓库

在 Cloudflare 创建一个应用:

利用Telegraph和Cloudflare自建图床实现外链图片存储

点击 连接到 Git 按钮;

利用Telegraph和Cloudflare自建图床实现外链图片存储

选择指定仓库开始安装:

利用Telegraph和Cloudflare自建图床实现外链图片存储

点击 保存并部署 随后开始安装

利用Telegraph和Cloudflare自建图床实现外链图片存储

等待安装完成后,可通过 Cloudflare 自动分配的域名访问,。

利用Telegraph和Cloudflare自建图床实现外链图片存储

或点击 添加自定义域 绑定自定义域名

利用Telegraph和Cloudflare自建图床实现外链图片存储
利用Telegraph和Cloudflare自建图床实现外链图片存储

完成绑定后,可通过绑定的自定义域名进行或自动分配的域名访问,页面如下图:

利用Telegraph和Cloudflare自建图床实现外链图片存储

因为使用 Cloudflare 的网络,图片的加载速度在某些地区可能得不到保证!

补充

1.开启图片审查

1.请前往https://moderatecontent.com/ 注册并获得一个免费的用于审查图像内容的 API key

2.打开 Cloudflare Pages 的管理页面,依次点击设置环境变量添加环境变量

3.添加一个变量名称ModerateContentApiKey为你刚刚第一步获得的API key,点击保存即可

注意:由于所做的更改将在下次部署时生效,你或许还需要进入部署页面,重新部署一下该本项目

开启图片审查后,因为审查需要时间,首次的图片加载将会变得缓慢,之后的图片加载由于存在缓存,并不会受到影响 [利用Telegraph和Cloudflare自建图床实现外链图片存储

2.图片管理功能更新

1、支持图片管理功能,默认是关闭的,如需开启请部署完成后前往后台依次点击设置->函数->KV 命名空间绑定->编辑绑定->变量名称填写:img_url KV 命名空间 选择你提前创建好的 KV 储存空间,开启后访问 http(s)://你的域名/admin 即可打开后台管理页面

变量名称KV 命名空间
img_url选择提前创建好的 KV 储存空间
利用Telegraph和Cloudflare自建图床实现外链图片存储

2、后台管理页面新增登录验证功能,默认也是关闭的,如需开启请部署完成后前往后台依次点击设置->环境变量->为生产环境定义变量->编辑变量 添加如下表格所示的变量即可开启登录验证

变量名称
BASIC_USER =<后台管理页面登录用户名称>
BASIC_PASS =<后台管理页面登录用户密码>
利用Telegraph和Cloudflare自建图床实现外链图片存储

当然你也可以不设置这两个值,这样访问后台管理页面时将无需验证,直接跳过登录步骤,这一设计使得你可以结合 Cloudflare Access 进行使用,实现支持邮件验证码登录,Microsoft 账户登录,Github 账户登录等功能,能够与你域名上原有的登录方式所集成,无需再次记忆多一组后台的账号密码,添加 Cloudflare Access 的方式请参考官方文档,注意需要保护路径包括/admin 以及 /api/manage/*

3、新增图片总数量统计 当开启图片管理功能后,可在后台顶部查看记录中的图片数量

利用Telegraph和Cloudflare自建图床实现外链图片存储

4、新增图片文件名搜索 当开启图片管理功能后,可在后台搜索框使用图片文件名称,快速搜索定位需要管理的图片

利用Telegraph和Cloudflare自建图床实现外链图片存储

5、新增图片状态显示 当开启图片管理功能后,可在后台查看图片当前的状态{ “ListType”: “None”, “TimeStamp”: 1673984678274 } ListType 代表图片当前是否在黑白名单当中,None 则表示既不在黑名单中也不在白名单中,White 表示在在白名单中,Block 表示在黑名单中,TimeStamp 为图片首次加载的时间戳,如开启的图片审查 API,则这里还会显示图片审查的结果用 Label 标识

利用Telegraph和Cloudflare自建图床实现外链图片存储

6、新增黑名单功能 当开启图片管理功能后,可在后台手动为图片加入黑名单,加入黑名单的图片将无法正常加载

利用Telegraph和Cloudflare自建图床实现外链图片存储

7、新增白名单功能 当开启图片管理功能后,可在后台手动为图片加入白名单,加入白名单的图片无论如何都会正常加载,可绕过图片审查 API 的结果

利用Telegraph和Cloudflare自建图床实现外链图片存储

8、新增记录删除功能 当开启图片管理功能后,可在后台手动删除图片记录,即不再后台显示该图片,除非有人再次上传并加载该图片,注意由于图片储存在 telegraph 的服务器上,我们无法删除上传的原始图片,只能通过上述第 6 点的黑名单功能屏蔽图片的加载

9、新增程序运行模式:白名单模式 当开启图片管理功能后,除了默认模式外,这次更新还新增了一项新的运行模式,在该模式下,只有被添加进白名单的图片才会被加载,上传的图片需要审核通过后才能展示,最大程度的防止不良图片的加载,如需开启请设置环境变量:WhiteList_Mode==”true”

10、新增后台图片预览功能 当开启图片管理功能后,可在后台预览通过你的域名加载过的图片,点击图片可以进行放大,缩小,旋转等操作

利用Telegraph和Cloudflare自建图床实现外链图片存储

已经部署了的,如何更新?

其实更新非常简单,只需要参照上面的更新内容,先进入到 Cloudflare Pages 后台,把需要使用的环境变量提前设置好并绑定上 KV 命名空间,然后去到 Github 你之前 fork 过的仓库依次选择Sync fork->Update branch即可,稍等一会,Cloudflare Pages 那边检测到你的仓库更新了之后就会自动部署最新的代码了

一些限制:

Cloudflare KV 每天只有 1000 次的免费写入额度,每有一张新的图片加载都会占用该写入额度,如果超过该额度,图片管理后台将无法记录新加载的图片

每天最多 100,000 次免费读取操作,图片每加载一次都会占用该额度(在没有缓存的情况下,如果你的域名在 Cloudflare 开启了缓存,当缓存未命中时才会占用该额度),超过黑白名单等功能可能会失效

每天最多 1,000 次免费删除操作,每有一条图片记录都会占用该额度,超过将无法删除图片记录

每天最多 1,000 次免费列出操作,每打开或刷新一次后台/admin 都会占用该额度,超过将进行后台图片管理

绝大多数情况下,该免费额度都基本够用,并且可以稍微超出一点,不是已超出就立马停用,且每项额度单独计算,某项操作超出免费额度后只会停用该项操作,不影响其他的功能,即即便我的免费写入额度用完了,我的读写功能不受影响,图片能够正常加载,只是不能在图片管理后台看到新的图片了。

如果你的免费额度不够用,可以自行向 Cloudflare 购买 Cloudflare Workers 的付费版本,每月$5 起步,按量收费,没有上述额度限制

另外针对环境变量所做的更改将在下次部署时生效,如更改了环境变量,针对某项功能进行了开启或关闭,请记得重新部署。

利用Telegraph和Cloudflare自建图床实现外链图片存储
© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容