Calibre-web 个人图书库搭建记 11 扩充图书库

因为calibre-web服务器环境目前基本稳定了,所以自己开始考虑如何进行图书墙的数据扩容问题了。前段时间因为需要下载图书,开通了小蜜蜂书库的vip,自己每天抽空把下载权限给用上,每天可以新增到书库50本新书,去掉重复的部分基本可以达到30本,一个月能新增1000本。一年能新增一万本图书,应该也能服务不少用户了。

小蜜蜂的书库基本都是正版书籍,在排版和质量上都能有所保障,之前的一部分图书是从其他网站下载的,很多不是亚马逊的版本。这几天我对重复图书的处理是不重复添加,现在想来应该重复添加才对,这样可以将原来非官方的图书版本更新掉,逐渐实现图书质量的提高,反正上传不花钱。只不过是重新覆盖一下。然后通过 calibre的插件 Find Duplicates 处理重复图书。

小蜜蜂的vip只需要30元每年,对于电子书资源来说性价比超高。但下载权限的限制也很明显,一天只能存储50本,一天只能下载20次,下载还有频率和带宽限制,好在打包下载速度还可以,一般50本下载下来需要20多分钟,不能一起下载,一次一个进程下载比较安全。

[……]

阅读更多

Calibre-web 个人图书库搭建记 10 结合对象存储和云存储做加速

calibre-web 程序放在腾讯云中,用了腾讯云的cos对象存储来放置图书库。可以让书库容量变得接近无限大。

为了充分发挥对象存储的优势,通过修改模板文件和代码程序,把calibre-web 的缩略图和图书下载阅读都直接使用了对象存储的cdn访问。这样既能提高用户下载速度,又可以节约python转发对象存储内容的服务器算力,要让对象存储的请求数减少一些。cos对象存储的访问域名和对应的对象存储cdn域名是单独两个,直接使用对象存储域名还是cdn域名也是各有优缺点。

cdn域名可以对资源进行加速和缓存,而且能抵消一些免费cdn流量,用上cdn以后如果用户少也许空中率会没有这么高,基本还是回源访问的话达不到加速效果还损失下载时间。cdn另外一点是不能再通过对象存储的加密访问来防止盗链资源的发生。cdn加速效果和加密访问资源这个在后面需要继续测试和改进。

[……]

阅读更多

Calibre-web 个人图书库搭建记 9 calibre 插件 Find Duplicates 整理重复书籍,统一编目

现在图书库中有1.3万本图书,其中有90%是从网上下载的各个网站的资源。书籍的meta编目信息混乱的很,标签有几千个,作者、书名、出版舍也都混乱。

因为一些网站为了推广自己而在图书的meta植入广告,如果是自己看一两本书没什么影响,几万本书的时候对资源统一管理,整理势在必行。好在calibre 可以辅助索引检索。自己人工用排序将没有意义书籍标签先处理了,处理了几千条。通过批量管理吭哧吭哧搞了一个小时,一晚上基本都在干整理标签的事。整理完以后还剩一些标签需要再规整,但先将广告标签和书名当标签的情况处理掉了。

整理书签顺道把放到出版社位置的广告也都删掉了,搞完书库的标签和出版社。后面发现作者和标题的重复人工基本无法处理,太分散,太难发现。

[……]

阅读更多

Calibre-web 个人图书库搭建记 8 开始准备改代码

因为上周末在腾讯云上搭建了Calibre-web 程序。为了节省服务器硬盘,为了以后书库扩容方便,自己把书库文件通过腾讯云的对象存储挂载到云主机的方式存放的。

开始主要是想用腾讯云免费的50G对象存储(cos)空间,但后来发现用户对象存储好像天热比较适合这种固定且读写不频繁的图书库场景。

但用对象存储挂载到云服务器上发现读写瓶颈非常明显,基本上只要一更新calibre的数据库就会把 Calibre-web的程序搞崩溃。自己开始不知道是对象存储当磁盘挂载的读写造成的。结果反复的尝试和研究calibre-web的驱动方式与挂载磁盘的关系,一个劲的重启、删除数据库、重装来测试。

最后才发现原来是对象存储当磁盘使用不能把对象文件当数据库来使用。仔细研究了一下calibre管理图书的原理,发现书库的索引库放在了跟图书源文件一个目录,这行好处是可以配置一个数据库文件地址,就能按照数据相对索引到图书文件。

[……]

阅读更多

Calibre-web 个人图书库搭建记 7 云存储放置书库文件

Calibre-web 程序本身自带了将图书文件存储在谷歌硬盘的解决方式,按照教程配置应该就可以搭建成功,为什么是应该呢?因为我还没有尝试这种在Google Dirve存放图书文件方式搭建。原因是我的谷歌硬盘只有15G大小(存储升级并不贵,1T空间貌似只需要9.9美元/月)。另外是在国内无法访问谷歌硬盘,这样在国内基本就无法使用这种方式。

所以只能自己用国内的存储方案来实现硬盘够大,还比较优惠的方案。开始我准备直接用腾讯云或者阿里云的服务器来买块大硬盘就可以提供服务了,但考虑到未来如果图书库越来越大的话备份和迁移服务器都会是比较麻烦的,重要的一点是把如此大的文件放到一台服务器备份也很麻烦,文件的下载速度完全取决于自己服务器的带宽能力,1M的服务器跑个web应用还可以,如果再加上大量图片和下载就不行了。

综合了阿里云和腾讯云的服务器的存储和对象存储后,直接在腾讯云的cos对象存储中存放40G的书库文件,腾讯云提供50G的cos对象存储免费空间,基本可以满足需要了,未来如果增长也只需按量付费就可以。

[……]

阅读更多

Calibre-web 个人图书库搭建记 6 解决问题

之前部署的 Calibre-web 书库一直遗留了一个问题,就是书库服务器软件自己开机无法自己启动 nginx,自己一直没有找到原因。这个问题加上 cloudatcast 的开发服务器性能不足和经常宕机直接导致了整个书库服务网址三天打鱼两天晒网。经常程序奔溃后我没有时间重启机器,然后几天就无法访问。

最近这段时间感觉书库服务器已经比较稳定了,今天中午休息时间正好有空,登上服务器仔细看看到底是什么问题。先是怀疑服务没有加入开机启动项,自己尝试了几种方式都不能正常开机启动。基本排除没有开机启动原因了。

联系自己手动通过 nginx 的命令行就可以开启服务,但直接使用系统服务却无法启动服务。感觉是开机启动的服务启动方式也许遇到了问题。开始模拟开机启动服务的方式启动 nginx 却发现报错显示服务启动失败,但 nginx 居然还在运行。仔细排查一下 nginx 的开机启动方式,具体报错居然是配制的访问日志没有权限写的问题。

[……]

阅读更多

Calibre-web 个人图书库搭建记 5 开发服务器的坑

昨天书库的 cloudatcost 服务器突然无法连接了,500 错误,在网站管理后台重启服务器,结果就连不上服务器了。

这种情况又没有什么办法重启服务器,也没有办法登录。只能在后台不断的尝试重启服务器,最后好像网站后台也没有办法重启服务器了,完全失联的感觉。

这下子就坑了,也许只能发个工单寻求支持了。

把很长时间不用的笔记本电脑启用了,然后尝试用笔记本来扩充书库,台式机硬盘已经爆满了。从百度网盘往下同步以前转存的书库中。

最后发现使用服务器提供的管理 Api 可以重启服务器。通过官方 app 重启了服务器可以正常连接了服务了,又把百度网盘拉下来的一部分书给整理了一下放到服务器上,大概增加 9G,同步模式太慢了。还需要优化上传方式,通过文件修改时间筛选好新增文件直接上上传。

[……]

阅读更多

Calibre-web 个人图书库搭建记 4

新做的 Calibre-web 书库晚上又重新同步了一遍,整个同步基本是失败部分,只有 18M 需要同步。把几千个文件对比一遍用了很长时间。

做完以后星期日没有什么需要做的了,但早上醒来发现书库打不开了,请求基本没有响应,ssh 也连接不上服务器,看了一下管理后台显示服务器的 cpu 居然接近用到 500%,用服务器的 web 管理后台硬重启了服务器,重启后再测试发现负载正常了。这个问题需要持续观测一下,真的需要装一个监控软件看一下服务器一天的负载变化,研究下是不是自己服务器的配置分配过低了。

重启完成后测试书籍 send to kindle 的功能又不能访问了,是服务器的 dns 设置又被系统还原了,linux 的一些配置是一次性的,重启机器会被还原、学习了一下如何改服务器配置为不还原的修改,过程就是搜索。搜索完发现 linux 配置文件是只读的,保存不了,再学习如何保存,用 sudo 都不能保存,搞了很久发现 vi 编辑器保存命令后再加 ! 可以强制保存 。:wq! 这个命令保存即可,看到这个才对应起来在保存不成功时 linux 的提示有让强制保存加!的提示,可我这英文不好又给忽略了。还是要尽快磨块英语这把刀,绝对不会影响砍柴功,这个事情本是很简单的按照提示操作即可,但我居然用了几个小时才找到答案。

[……]

阅读更多

Calibre-web 个人图书库搭建记 3

按照个人书库搭建计划,如期把 Calibre-web 图书馆藏升级为了 3800 多册,这么多书累计起来存储超过 17GB,这么大的文字数量,一个人读完也需要大量的时间。那些说自己读过上千本书的人真的让人佩服。

上传完图书以后自己又想将没有 epub 格式的电子书转换一下,这样就可以在线阅读了。使用本地 Calibre 转换了一晚上,通过小黄鸭 Cyberduck 同步到服务器以后网站又打不开了。这下几千本书籍也不知道要怎么处理了。

做了这个书库以后等于自己把书架藏书提升到了一片墙的感觉,一个书架墙只需要放置寥寥几本实体书和一个电子书就可以了,电子化总是好的,可以用极少的空间完成一件以前需要一屋子书架才能放起来的书籍。如果不是为了书籍的装饰效果,完全可以逐渐用电子书来替换了。

[……]

阅读更多

Calibre-web 个人图书库搭建记 2

昨晚折腾 Calibre-web 书库到很晚,等着书库的888本书上传完以后又新开了一台新的开发主机,这次把内存和产品升高了一下,然后把硬盘容量提升到了 60G,但机器网一直不通,等了一晚上网也是不通,早上删掉主机重建以后网通了。

抽空对照了昨天整理的部署文档进行安装,把漏下的步骤又做了填补,基本是完整的步骤了。部署完成以后开始用小黄鸭同步了一个 1000 多本的超大书库,但很也发现了一个Calibre-web 的 bug ,这个书库文件配置错误以后程序会崩溃,无法运行。

同步之前还测试了calibre-web 只支持 epub 的格式在线阅读,没有学会如何在线转换书籍格式,所以用windows 下的 Calibre 软件本地数据库转换书籍到 epub 格式,然后通过同步功能同步到小存储的服务器目录。测试一下全部可以支持在线阅读大该需要多大空间,顺便测试本地 calibre 的批量转换效率。总体看个人使用问题不大,但如果有大批量的导入和转换的化初始阶段会卡。转换和同步到服务器过程中总会有几个失败的情况出现。这也许就是需要批量处理的问题。

[……]

阅读更多