banner
xingli

xingli

猫娘爱好者

Telegraph-Image免费自建图床新增后台图片管理

Telegraph-Image 免费自建图床新增后台图片管理...#

2023 年 1 月 19 日 1:51 AM 更新:之前发布的代码,由于熬夜精神状态不佳,写代码的时候犯了最低级的逻辑错误,本来应该是用 if(判断如果设置了kv 环境变量),则(图片首次加载时将图片写入 kv 储存当中),但是昨天也不知道大脑短路了还是怎么的,把 if 条件语句写反了,写成了 if(如果没有设置kv 环境变量),则(图片首次加载时将图片写入 kv 储存当中),但很明显如果没有设置 kv 环境变量,根本不可能成功写入 kv 储存成功,导致昨天部分大佬部署出现:Error 1101 Worker threw exception,设置了 kv 环境变量的大佬虽然程序能够正常运行,但是后台管理无法记录图片,因为程序不会执行写入操作。对此我感到非常抱歉,给各位大佬造成了困扰,现在问题应该是修复了,烦请各位大佬部署最新版本的代码,也感谢 @雾山 @mikj521 @那山很优雅 @3514088137 @hiing @telnetpig @mourner 等等大佬们的问题反馈,由于连续熬了几天夜,昨天身体已经实在顶不住了,所以睡觉去了,没能及时回复,抱歉!

之前随口一说 GIthub 上超过 500 Star 就更新图片管理功能,本来想的是一个小小的图床程序根本不可能达到 500 Star,但没想到各位大佬十分热情,好家伙,一下子没过几个月时间就给我点到 600+ Star 了。没办法既然是答应了的事情,只能是硬着头皮把图片管理功能写出来。

虽然在开发的过程中遇到了许多困难,花费的时间比我预想中的多了许多,发布的时间也是一拖再拖,在连续熬了几个夜晚之后,终于赶在春节之前发布这次的更新,也提前在此新春佳节即将来临之际祝各位大佬春节快乐!在新的一年里能够实现自己心中的愿望!

废话不多说,直接上代码:

Image Hosting solution, Flickr/imgur alternative, make it easy for users to share their images. Using Cloudflare Pages and Telegraph.

之前没有部署过的大佬,直接 fork 本仓库就可以去 Cloudflare Pages 后台进行部署了。

下面就来介绍本次更新的主要内容

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

img

img

(如何创建 KV 储存空间,请参考: https://github.com/xyTom/Url-Shorten-Worker/#%E5%8E%BBworkers-kv%E4%B8%AD%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4)

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

“变量名称” “值”

BASIC_USER = <后台管理页面登录用户名称>

BASIC_PASS = <后台管理页面登录用户密码>

img

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

3、新增图片总数量统计

当开启图片管理功能后,可在后台顶部查看记录中的图片数量

img

4、新增图片文件名搜索

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

img

5、新增图片状态显示

当开启图片管理功能后,可在后台查看图片当前的状态 {"ListType": "None", "TimeStamp": 1673984678274}

ListType 代表图片当前是否在黑白名单当中,None 则表示既不在黑名单中也不在白名单中,White 表示在在白名单中,Block 表示在黑名单中,TimeStamp 为图片首次加载的时间戳,如开启的图片审查 API,则这里还会显示图片审查的结果用 Label 标识

img

6、新增黑名单功能

当开启图片管理功能后,可在后台手动为图片加入黑名单,加入黑名单的图片将无 ** 常加载

img

7、新增白名单功能

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

img

8、新增记录删除功能

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

9、新增程序运行模式:白名单模式

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

10、新增后台图片预览功能

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

img

这次的更新内容很多,可以算是重量级更新了,整个程序的后端代码几乎全部重写了一遍,也花了不少时间,希望各位大佬觉得好用的话,看在我连续熬夜肝了这么久的份上能否帮我在 Github 上点个免费的 Star,也可以帮我多多宣传一下,分享给更多的人,非常感谢!

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

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

img

一些注意事项:

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

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

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

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

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

如果你觉得免费额度实在不够用,可以自行向 Cloudflare 购买 Cloudflare Workers 的付费版本,每月 $5 起步,按量收费,没有上述额度限制(怎么感觉我在给 Cloudflare 打广告?Cloudflare 赶紧打钱,把广告费结一下 /doge 手动狗头)

上述注意事项所得出的结论是经过多天的反复测试得出的,基本应该是成立的,但不排除后期 Cloudflare 突然改变相关政策。其次,本次更新所发布的全部功能,都经过了多次的反复测试,如在使用过程中各位大佬遇到 bug,很有可能是 Cloudflare 或是浏览器缓存造成的,可以尝试先清除一下缓存再试,另外针对环境变量所做的更改将在下次部署时生效,如更改了环境变量,请记得重新部署。

img

如果尝试了清除缓存,重新部署还是有问题的话,可以在 github 上提 issue 反馈,毕竟这次更新的功能较多,然后我一个人的水平和时间都比较有限,虽然已经是做了反复测试,但还是很难说是把每一个功能,每一种情况都测试到,出现 bug 在所难免。能赶在新年之前发布,作为送给各位大佬的新年礼物,对于我个人来说已经是很不容易了,开发过程中遇到了许多困难,曾多次想要放弃,想直接鸽了算了,但是一想到有这么多大佬(600+ stars)在默默的支持我,在 Github 上给我点小星星,我就觉得不能辜负了各位大佬的好意,无论如何都要咬牙把图片管理功能更新出来。

补充说明:变量名称是 img_url,不是 img url,注意有下划线 img

我也遇到了,不然是自定义域名还是默认域名,上传后管理页面都没有记录

针对这个问题,可能我写的不是很清楚,现在补充说明一下:图片上传后不会立刻在后台显示出来,而是需要通过你的域名加载过该张图片才会记录下来,你可以试试上传图片后先手动访问一次图片,看看后台是否会有记录

重新部署可以了,感谢

登录也设置好了,有个小疑问:前台上传图片目前没有权限限制,以后会增 ...

可以开启白名单模式,限制图片加载,因为后端的图片储存是采用了 telegraph 图床,即便限制前台图片上传,别人也可以直接通过 telegraph 官方的服务上传图片,所以限制前台图片上传没有太多的必要,且用处也不是很大

但你可以限制图片的加载,这样就能够最大程度保证域名安全,其次当你开启了图片加载限制,别人上传的图片无法进行加载也大概率不会继续使用你的域名上传图片了,因为如果只是用来上传图片的话别人完全可以直接部署一个属于自己的图床用于上传或使用官方的接口

所以只只要限制了图片加载,开启白名单模式,目前来说已经基本够用了

这个超过免费额度后会怎么样?直接不响应停止服务还是号有可能被封

目前在我测试的时候超出额度账号不会封,是否停止服务,超出不同的额度对应不同的结果,具体帖子里面有解释

补一张测试过程中超出 kv 免费使用额度的截图,仅供参考,如需长期超额使用,请购买付费套餐 img 该截图是 Demo 图床所对应的 kv,目前该图床已超出免费的写入额度,目前无法在图片管理后台看到新加入的图片,但是不影响其他功能的使用,各位大佬可以自行访问 Demo 网站测试:https://im.gurl.eu.org

就差部署到小鸡上了

lamb 发表于 2023-1-18 15:36

支持,话说加个可以配合 picgo 一起使用的功能吗

可以看下这位大佬写的

设置了 BASIC_PASS BASIC_USER, 域名 /admin 就直接进了 dashboard 了,,没有要求输入密码,浏览器开 ...

图片显示有问题,cloudflare 的 bug,以文字说明为准,设置环境变量后记得要重新部署一次

img

cf pages 原生支持 cname 接入,可以直接配置优选 ip,不需要绑卡开启 saas

1 月 19 日 4:35 AM 更新,优化代码逻辑,减少 KV 的写入数量,避免 KV 免费写入数量快速耗尽的情况,有需要的大佬可以更新到最新的版本

Caxen 发表于 2023-1-18 15:23

不需要管理功能的话,有必要更新吗?

可以不用更新,本次更新主要就是新增了管理功能,其他没有太大的改变,但其实更新也很方便,如果不启用管理功能的话,去 GitHub 上点几下鼠标就行了

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

不需要管理功能的话,直接去到 Github 你之前 fork 过的仓库依次选择 Sync fork->Update branch 即可,稍等一会,Cloudflare Pages 那边检测到你的仓库更新了之后就会自动部署最新的代码了

设置 kv 以后点击重新部署了吗?设置 kv 或是环境变量后要重新部署才能生效,这是 cloudflare 的限制

修复【更新】Telegraph-Image 免费自建图床新增后台图片管理...

https://hostloc.com/thread-1127284-1-1.html

(出处:全球主机交流论坛)

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.