Calibre-web 个人图书库搭建记 17:升级Calibre-web,更新任务(Tasks)发 送邮件功能

0

前段时间在 calibre 的群里聊天,讨论了一些关于新版本calibre-web在linux 服务器,docker,群晖中的安装问题。我看最新版本的calibre-web 已经支持任务功能。

calibre-web 的任务(Tasks)是负责电子邮件发送队列化处理,calibre-web邮件发送主要有两个用途,一个是发送注册后的账号信息,另一个是将电子书通过邮件发送到kindle。我之前日记里写过,因为放到腾讯云的服务器出口带宽只有1m,实时发送邮件会堵塞程序执行,然后把带宽占满,一百兆的文件需要发送几分钟,程序也就崩溃了。

我一直不想去升级calibre-web新版本的原因是之前为了了解calibre-web的代码,自己改了一些模板和程序的东西,如果升级了新版本,这些改过的地方又要重新改一遍。前段时间我就升级过一次calibre-web,因为现在的版本都是零点几的版本,很多代码的实现都是临时写到业务逻辑里了,我升级这个版本的时候,有很多又进行了封装。所以很多代码不只是简单的拷贝到对应位置,还需要了解修改的后的代码逻辑,再进行升级。

上次升级,我改了一阵子也没有完全升级完,又不想对比着git改动挨着改,一对比有几十个文件有变化,看着都头大。一般是想起哪个地方来就改哪个地方。测试着玩的好处就是不用担心改坏了代码,不需要为软件的稳定运行而一次改好,即便是服务不能用了,也没什么压力。上一次升级完代码之后,我就在想,自己或许有些优化的过于早了,毕竟calibre-web的程序开发者也在不断的更新代码,我应该只改动一些配置文件就好了,不能在代码里乱加东西,而且加的东西都是为了适应自己的需要做的,没法提交到程序的主分支。只能自己使用,每次升级都改一次太麻烦了。

我想用一下calinre任务(taskes)功能,然后把代码还原成原始程序代码,不再使用腾讯云存储存书库,也不再用cdn进行文件加速。如果需要修改程序也只修改最简单的功能模板,不改动系统文件,这样改动完以后,就可以把calibre-web的代码做成自动更新的了,如果一点都不改动的话,还可以配置git 钩子自动化更新github上的代码到开源的最新版本代码。

做了这个calbre-web的升级改动以后,就面临一个新的书库存放地方的问题,以前用腾讯云的cos的目的是有两个,一个是cos本身存储容量足够大,价格便宜,上传同步书库文件的带宽基本不限量,可以自动化同步新增书库文件。再一个是可以自动开通cdn加速,可以增快书库的下载和浏览速度。现在腾讯云的cos不能用了。自己用腾讯云的云硬盘扩容到200G很贵,如果算上书籍在线阅读解压以后的容量,需要接近500G的云硬盘容量,费用太高,即便是按需付费的nfs共享文件存储也要很高的费用。这与我只是用现有服务器测试的初衷有差别,自己也觉得没必要每月花钱维护一个盗版书库。

所以就把腾讯云cos的文件都删了,200G,4万本书,十几万个文件和几万个文件夹。。在calibre后台删了几个小时才删除完。

我装的新版本的calibre-web的书库是通过calibre的新建书库功能新建的,然后把一些自己读过的书复制到新书库,再把自己要看的书也放到里面,自己看的时候就发到kindle。但真正用的时候发现这样就没法发挥读新书的便捷性了,也没法做一个在线大书墙使用了,因为书库里存的都是我已经读过的书。但自己突然遇到一本书想读的时候,只能在本地找到,就没有更新到测试书库的欲望了,有这个时间,自己已经把电子书发到kindle了。

为什么要把电子书库删掉,其实还有另外一个考虑,因为最近好像版权比较敏感,而为了一个自己测试程序承担一个版权风险的事情没有必要。自己也怕因为在网上有这么多电子书引来麻烦事情。索性把电子书都删掉了,这样也避免了不必要的版权问题,也可以减轻服务器处理书库数据库时的压力。现在书库重启速度已经明显快了很多,动不动就崩溃也没有了。

升级完程序以后的calibre-web的运行速度加快了,不过没有了cdn的速度加持,只能靠服务器的小带宽来支撑,速度会减慢一些,稳定性得到了增强。而且发送到kindle的稳定性也得到了提高,只要附件大小不超过邮箱和kindle对附件大小的限制,又添加了kindle的信任邮箱,那就基本能把文件发送到kindle文档了。

然后书库里的图书文件就减少了。现在已经只剩下测试用的几本书了,其他的更多书,等以后有空的时候再想如何处理吧,理论上,只需要把服务器挂载好按需付费的共享存储就可以了获得无限空间了。现在一套可行的电子书管理方案也就跑通了,至少作为内部的图书管理已经够用了。

然后,我的一片电子书墙的计划也就先放一放吧。

发自我的iPhone

发表评论

电子邮件地址不会被公开。 必填项已用*标注