【CF图床/cf-imgbed】近期重要更新汇总,助力项目突破5k star✨

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社...
【CF图床/cf-imgbed】近期重要更新汇总,助力项目突破5k star✨
【CF图床/cf-imgbed】近期重要更新汇总,助力项目突破5k star✨
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


今天想起来我已经很久没发过CloudFlare-ImgBed项目的更新内容了。今天趁着项目刚经历了一次非兼容更新,以及release记录来到了100+次,所以我觉得有必要发一条帖子说明一下+分享一些真实的感受。

首先是关于为什么这么久没有更新过项目相关的帖子?

一方面是项目一直在有条不紊地平稳运行,修bug,美化前端,优化安全性,重构屎山代码构成了一次又一次的commit和更新记录,关注项目的佬友应该都能够注意得到,所以为了避免刷帖我也就没有频繁地发相关帖子。针对屎山代码,这里有必要特别说明一下,其实因为我对代码风格的自我要求还是很高的,甚至有点强迫症,可以因为一个大小写专门提交一个commit那种hhh,所以我每次修改的代码都是按照我认为的当前情况下最优结构来写的。但是随着时间的推移和项目规模的不断扩张,依然不可避免地会遇到很多结构方面的问题,这就导致了我项目的更新记录里面充斥着各种重构的记录,当然也正是因为这个习惯给Agent持续开发和维护这个项目提供了可能。如果不是经常性的架构优化和重构,Agent估计早已经将这个项目改得不成样子了(充分体现了人类程序员的重要性)。

另一方面是我个人平时的事情真的非常多,学业、科研和工作连轴转,经常想着将图床先放一放,但是每当看到有人反馈bug的时候,还是不由自主地会在脑子里把修bug的任务作为一个待办,只为了能让别人用上更加稳定的项目,而这也许已经成为了我的一种习惯。当然,更多的心思放在了项目维护上,自然就会导致没有时间和精力去做自己项目的推广。所以,现在项目每天增长的star数量和关注度都是纯自然流量,虽然没有一些网红爆款项目那样经验,但是也能给我带来稳稳的幸福感!

近期更新了什么?

其实我已经记不清上次发更新内容是什么时候了:joy:,而且每次的更新日志都有相当多的内容,实在不能一一列举。所以在这里我就简单总结一下我印象里面最近的一些重要更新,还有需要佬友关注的非兼容更新吧。

  1. Docker部署采用Hono框架代替原来的wrangler本地模拟:这是我认为的这个项目从玩具发展成一个成熟项目最重要的一块拼图。以前为了快速上线Docker部署方式,直接把wrangler运行时打包到了镜像当中。但是说到底这个运行时只是用来开发的,在生产环境中面临着内存泄漏,占用内存很大,并发低,镜像体积大,数据保存和恢复不够便捷等等问题。而换成了Hono架构之后,不仅内存占用和镜像体积有了非常明显的减小,容器的稳定性和技术栈的可维护性也都有了全面的提升(相当于在Docker中摆脱了对Cloudflare运行环境的依赖,成为了一个独立的项目)。当然凡事都有代价,这次更新导致之前Docker部署的用户都需要手动备份,在恢复到新版的容器当中,以前用本地模拟R2的方式上传的文件,也需要全部重新再上传一次,可能给一些用户带来的麻烦,深感抱歉!
  2. 支持Cloudflare Worker环境部署:这个更新也是很多人一直以来都期待的更新,因为worker作为现在Cloudflare主推的部署方式,在长期维护性和新功能的支持性上都比pages有更大的优势,并且最重要的一点也是做优选更加方便了。很早之前项目中其实就开了一个master分支,这个分支本来就是worker版本的分支,但是鉴于维护多个分支的繁琐性,我一直把它作为一个实验性分支,也并没有公开宣传大家使用这个分支。直到我完成第1点中提到的更新后,我意识到对其他平台的适配可以和业务逻辑完全分离,通过兼容层就可以实现跨平台的适配,基于这个思路我也很快完成了对worker的适配,进一步验证了这个思路的可行性。这个方式的好处就是写好兼容层之后,以后的更新都只需要维护一份逻辑代码,各个平台自然而然就能体验到新的功能。而这个实验也为后面可能做的Vercel、EdgeOne等其他Serverless平台适配提供了教科书级别的样例。因为这个新部署方式的支持,我也对代码仓库结构进行了调整,所以以前使用pages部署的佬友在更新v2.7.1之后需要手动在cloudflare中把项目构建目录调整为/frontend-dist,具体可见readme中的公告或更新日志中的说明
  3. 认证信息加密存储和session会话的引入:这个项目最开始是两年前我在GPT-4的帮助下手搓的,当时我并没有很丰富的开发经验,有的经验就是本科的各种软工相关课程学到的玩具开发经验,所以项目中的用户端和管理端鉴权信息都是在数据库中明文存储的,API也是采用了明文携带密码的形式进行鉴权。我一直觉得这样不安全,但是也没有把它作为一个高优先级待办去优化。直到有人在项目的讨论区发了一条密码竟然是明文存储的吗?这样一个话题,犀利的话语让我的心受到了一点震撼,也让我意识到了这件事情的严重性。所以我很快把这项优化提上了日程,采用了PBKDF2加密密码和动态会话session的方式彻底重构了项目的鉴权机制,提升了项目的安全性,也是对项目漏洞的一次补全。当然密码我都做了兼容处理,大家对这次更新应该可以做到无感。
  4. 新增WebDAV渠道:这个也是感谢Github贡献者 htazq 贡献的代码(不知道是不是佬友哈哈)。其实前面提到过我对代码架构一直有着比较严格的要求,各个模块都尽量做到高内聚低耦合,也正是因为这种要求使得AI可以很迅速地基于现有架构适配新的存储渠道,并且能够迅速上线。

在项目即将迈向5k star之际,有什么想说的?

首先我想谈一下开发这个项目的感想,对于这个项目我确实是倾注了很多的心血,付出了大量的时间和精力去维护,经常有关注我的同学看到我又发布了新版本,开玩笑地问我为什么不去做科研?其实我也不好回答,也许是因为兴趣使然,也许是因为开源社区和大量用户的驱使,使我觉得我必须要这么做。自从开始维护这个项目之后,Github便从一个工具网站变成了我和外界沟通的一个重要渠道,每天我都会收到平均2~3个issue或者discussion,也有很多人通过邮件和QQ与我取得联系。随着人数越来越多,我经常很难顾及到每个人的问题,也许有的人通过QQ加我我也不太会通过,还是鼓励大家通过Github渠道来进行沟通,因为即时社交软件会对我正常学习和生活带来很大的干扰。如果这一点冒犯了一些朋友,我深感抱歉。

其次我想聊一聊这个项目和AI的关系,我觉得这个项目和AI是相伴共生,共同进步的。为什么这么说呢?老资历佬友应该都对这个项目的开创时间有点印象,大概是2024年的七月底八月初吧。当时的顶流模型还是GPT-4,相信大家也都不陌生,那时候的模型能力和现在比起来简直就是云泥之别。我正是借助着它一点点地表达自己的想法,一点点和佬友交流需求,一段段生成代码再粘贴到IDE里面进行修改。Copilot的代码补全是本地开发最有力的帮手,架构全靠自己设计,前端还要一点点翻Vue的文档,开发效率大概是现在的1/5,一天可能最多写两三个页面。后来模型能力越来越强,Agent时代来临,慢慢地Agent能对代码的整体架构和各个细节都有自己的理解,能给出一些令人眼前一新的架构和设计方案,也让这个项目逐渐从一个小范围使用的项目走向更加成熟和完善,也方便让更多的Contributor能迅速对代码做出贡献,这一点我也十分欣慰。到2025年后半年,我已经很少再去写细节性的代码了,自己更多地是去把控整体的架构和AI的编码方向,以及去做代码的审查,开发效率高了不少,项目的规模也膨胀得更加迅速。现在看来,项目主仓库的八百多次提交(实际提交应该远高于这个数量,因为我的习惯是完成一个功能,测试没问题后才进行一次提交)里面蕴藏着AI从一个对话机器进化成全能代理的全过程,令人唏嘘呀。现在很多AI托管的网红爆款项目,或许短时间内获得了数万star,但是我觉得其中一部分的影响力还是很有限的(当然不乏一些确实很好的项目),大部分的star都是一种点赞式的,以前我也想过要不要去做这种类型的项目,也对图床这个项目在AI时代的影响力有过怀疑,但是慢慢地我也看清了,去做一个真正能对别人起到帮助的项目,永远要比用AI做一个只是为了吸引别人star的日抛项目要更加的有意义!

先写这么多吧,算是项目的一个阶段性总结和碎碎念,码了一个小时的字,还是挺累的 :face_in_clouds:

最后,项目还有71个star就突破5k star了,希望各位佬发发力 :winking_face_with_tongue:,谢谢各位佬了!也感谢Linux DO一直以来对这个项目的支持,从项目发起到不断完善,都离不开社区和各位佬的共同努力!!

项目地址:

github.com

GitHub - MarSeventh/CloudFlare-ImgBed: A serverless, open-source file hosting solution...

A serverless, open-source file hosting solution built on Cloudflare. Supports image hosting, secure file storage, and personal cloud drive capabilities.

最后的最后,晒一张MIMO刚通过的订阅截图,感谢雷总:two_hearts::two_hearts::two_hearts:

image

5 个帖子 - 5 位参与者

阅读完整话题

来源: linux.do查看原文