https://support.qq.com/products/315563
图仓是一款以图片上传、图片分发、图片管理为核心的图床/图片管理平台,能够满足「收藏、整理、查找」的各种场景,把琐碎复杂的事情变得简单与高效,让收集素材成为⽇常习惯,更让素材真正到想用的时候可以信手拈来!是设计师和摄影爱好者必不可少的工具!
作为一个(伪)摄影爱好者,平日里有审图的习惯,遇到拍的比较好的图片,就会随手保存下来,以免等到拍小姐姐的时候,不知道如何引导、构图。久而久之,手机里就有很多小姐姐了,真正想回顾一下,再回过头学习就不是那么方便了。以手机相册维度进行管理的图片,没法实现我想实现标签化归类的需求,同时,在不同APP看到的图片,保存下来,也会分散到不同的文件夹,还需要后期批量移动、整理......本来想看看有没有造好了的轮子的,找了一圈下来,没有找到合适的,目前市面上有的,都是基于本地进行管理的,虽然为了一些隐私等安全,能够理解这种设计理念,但无法实现我的要求,难不成随时抱着一台笔记本外出么。而传统意义上的图床吧,也就只是个图床而已,没有一点管理的功能。
与此同时,博客上的图片,一直是购买使用某位大佬的图床程序,对于我来说,过于臃肿,有些设计,没有达到我想要的一些效果,苦于不熟悉PHP,所以一直也就这么用下来了。直到最近因为某个接口的事情,大佬被请喝茶了,同时群里购买过付费程序的群友,也有不少被喊去做笔录,了解相关情况。于是就有了想自己写一套的想法。
【暂时没有开源的打算】你可以直接使用我部署好的,因为我自己是要一直用的,所以会一直维护下去,我能够保证数据不会丢失,毕竟存了好几份COS、OSS之类。也能够确保不会看你上传了哪些文件,目前已经有鉴黄的功能了,是自动的,除非被AI鉴定为疑似图片,我才能在后台看到,后续涉恐涉暴等都会上线。并且,已经有了“防跑路导出”功能,我提供了预览程序,你可以自己部署,再导入从我站点导出的数据即可。在这些功能的加持下,我相信你能够用的安心。
-
目前不具备开源的各方面条件。项目的诞生之初,就是为了我自己的需求的,所以到目前为止,也是按照我自己的需求开发,包括整体的架构等等。①JAVA开发的项目,从部署方面来说,远远比不上PHP的便捷,对于小白来说,光是安装编译环境、软件、导入项目,就够喝一壶的了。②目前图仓整个项目并不是单体的应用,目前主要分为:前端、主站(后端)、分发站(后端)、预览站(后端)。以上两点,我也实在没有时间和精力来整理文档、教程和重构。
-
分发的一些API,懂的都懂,这部分肯定不会开源。
-
开源后,肯定会有小白问一堆无脑的问题,想到这,就没有开源的想法了。我没有这个时间、精力和耐心。
20210917重新调整了上传上限这块的逻辑,默认情况下,每个用户每天最多上传100张。也可以在后台单独给某个用户设置上限。图仓目前已经很稳定了,目前的功能,也符合了我一开始的预期。接下来,看情况开发。
20210712终于把防跑路的功能全部完成了,光是部署教程就写了4K字左右。这样一来的话,如果图仓跑路不能用了,用户只需要自己部署一套预览的程序即可。使用Docker构建了预览的程序,部署基本就是一行命令的事情了,但还是写了一个从安装到部署的小白教程,累死了。
20210705这周放假把分发的逻辑单独抽出来了,这样方便横向扩展,目前启动了两个分发实例,暂时足够用了。主要是发现试用redis stream实现的消息队列,出现了消息积压,但是又没有收到stream的消息,没有消费的日志。估计是线程挂了,但是又看不出具体原因,只好先拆分出来,多起几个实例。然后通过定时任务,查看堆积情况,以此来判断分发程序是否正常。
20210610又更新了一波功能:图片搜索、用户管理、更新日志等。同时,优化了消息队列,现在处理的速度更快了。优化了图片展示这款的逻辑,如果你访问一张不存在的图片,会统一返回我设置好的图片;如果你访问的图片,所有源都挂了,也会返回一张统一的图片,提醒站长更新图源。
20210528二期基本上开发完毕了,至此,我一开始对于图仓的功能设计已经差不多开发完毕了。最后增加了查看图片分发到各个节点的情况,也能重新分发某个节点,这个功能是非常实用的。剩下再看有什么其他功能想开发的吧,平时就维护一下节点。后期着重“管理”,进行设计和开发。下一次大更新,就不知道什么时候了。
20210430之前用redis实现的消息队列,有一个死循环,以便随时获取新的分发任务,但是这种处理太消耗CPU了,本来服务器购买的是1C的,上线后直接100%运行了。最近把这部分优化掉了,用stream实现了简单的消息队列,五一期间会上一版,然后再观察一波。
20210327完善了一下安全这块,可以避免一些恶意注册、恶意上传以及简单的一些攻击。jar包的加密也搞定了,前端进行了一点优化。先更新一版,然后再进行正常的功能开发了。等项目完成度差不多了,再换好一点的服务器。
20210320把多模块的项目变成了单模块,主要是想尝试一下代码混淆和jar包加密,试了一下目前加密的工具,对于多模块打包的项目,都有点问题,试了很久很久,发现单模块的项目就没有问题了。最近主要是在优化安全这块的,例如增加一些风控,防止一些滥用的情况,每天可上传的数量以及总大小都做了一些限制等等。安全性这块,还得花点时间。
20210309最近把图片的预览和其他功能剥离开来了,分开进行部署。这样的话,可以增强系统的稳定性,也方便进行横向扩展。如果遇到了攻击,也能够保证已经上传好了的图片能够正常访问。研究了一些新的接口,基本上别人家有的接口,我这都有,别人家没有的接口,我这还有~
20210303最近重构了分发这块的队列,做了一些减法,因为目前从使用人数和频繁度上面来说,不需要太复杂的队列来处理分发。同时,有不少接口挂了,又更新了一批新的接口,目前一共有二十多个接口,开放了十五个,足够足够用了。距离上次更新,已经很久了,主要是太忙,没有太多空闲的时间,最近还是准备挤一挤,每周都更新一点点,哪怕是一点点也好。
由于前后端都是我一个人,白天还得上班,进度比较慢。不过目前也没有其他用户,我开发这玩意儿,初衷也不是为了给谁用,怎么推广之类的,所以,基本上开发什么、开发进度,纯凭个人了。不过,我还是希望能够找到一个开发前端的同学,最好是在校大学生(因为没有酬劳哈哈哈哈),你可以当做练手的项目,在企业中项目实际的开发流程和部署运维等,我基本了解一些,能够给你讲讲。做好后也可以写到你的简历上。我会一直做下去,如果可能的话,可以推广一下,我相信需要这个的人,还是有的。扯远了...
目前一期功能已经开发并上线了,也就是目前你看到的效果。能够注册登录、批量上传图片、异地分发图片、图片打标签、按照标签搜索,等等。不过由于第一期开发的很匆忙,没有仔细测试,BUG应该有不少,特别是前端的。所以欢迎大家给我反馈BUG,给我建议和意见。
这里我只简单说下。目前上传图片,首先会往本地上传一份,然后直接返回成功,不需要经过漫长的等待。同时,会进行异步的分发,分发到腾讯COS、阿里OSS以及几个公开的图床。当然,这里都是可以方便的进行扩展的,在二期我也会实现动态的管理接口,包括开启禁用、权重等等(已实现)。所以不用担心你的图片会丢失,若你想上传一些偏隐私的图片,暂时不建议,二期我会开发相应的功能,可以不进行分发,只保存到我的COS和OSS(已实现),若可能的话,可以对接你的一些网络存储,例如云盘什么的。
- Springboot
- Mysql
- Redis
- Mybatis Plus
- Shiro
- VUE
- Element UI
- 等
前端使用的是开源框架,目前都没有怎么开发样式,也没有这个精力,等会前端的有缘人吧。随着开发,功能会增多,但是下面的图片不一定会及时更新。