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

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

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

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

阿里云、腾讯云的对象存储都可以通过挂载的方式挂在到云服务器,挂载后就可以直接获得一块几百TB的存储盘,基本是无限空间(只要付得起钱)。挂载过程在其开发者教程中都有比较简单的教程提供,根据需要自己安装挂载到指定的目录就行。

拿定主意就在刚申请的腾讯云学生主机上搭建了Calibre-web程序,搭建过程就是用我之前总结的搭建wiki内容比较快就完成了(网址)。

搭建完成以后还需要上传书库到cos对象存储才行。开始计划是直接通过主机挂载的磁盘进行上传,主要是不用跑对象存储的外网流量,走服务器固定带宽。但测试了一下,用小黄鸭软件上传了一晚上跑了30多万的api请求数,只上传了700M数据,这个方式看来不可取。是不是腾讯云的服务器上行带宽也做了限制?还是挂载对象存储的读写速度有很大的瓶颈?

腾讯云对象存储(COS)挂载到服务器指南:https://cloud.tencent.com/document/product/436/6883

看来通过挂载主机直接上传是不行了,直接通过cos的本地同步工具进行上传试试。本地同步工具上传到对象存储也不会消耗太多的流量,而且对象存储的上行流量是免费使用的,只需要消耗一部分请求数就可以完成上传。

腾讯云对象存储(COS)本地同步工具:https://cloud.tencent.com/document/product/436/7133

通过腾讯云对象存储本地同步工具将40G文件上传到对象存储中只用了不到24个小时就完成了。速度还是很给力的。为了扩展和展示方便我都放到了一个固定的存储目录下了。上传完后配置Calibre-web的图书存储目录,可以正常跑起来了。设置一下游客允许访问模式,设置开机自启动程序,设置宝塔面板的站点域名配置反向代理到Calibre-web的服务端口。

在腾讯云上的Calibre-web就跑起来,如果你的书库不大的话基本半小时就能搭建成功了。

现在还有几个问题没有解决(启动挂载依赖问题、cos资源配置单独域名加速、数据库的本地更新错误、图库文件经常崩溃问题),测试重启服务器后Calibre-web的服务启动比机器挂载cos对象存储启动的早,然后配置就丢了,需要再次在后台配置书库的目录,这个需要解决一下。

因为采用的挂载目录方式,现在书库也还是通过服务器反向代理来访问资源,最终访问速度还是要看服务器的出口带宽,这样虽然可以省掉对象存储的外网流出费用,只能用到对象存储的无限存储功能,如果想充分使用对象存储的外网下载速度还需要在Calibre-web程序中做二次开发,直接在网站下载访问cos域名的资源链接。因为Calibre-web并没有配置独立资源访问域名的地方,如果要修改需要改动程序功能,等我学会python的开发以后有时间再来做这个功能吧!(就是不会做喽?)

另外测试了一下在本地的图书库中更新calibre的书库,然后同步更新到cos对象存储,结果数据库又遇到了错误,calibre-web无法读取,直接无法工作了,还需要在本地进行书库文件修复再更新一遍。耗费时间非常长,一个目录索引文件就有18M。崩溃问题也还找不到原因。

通过服务器挂载云服务的对象存储可以让服务器程序获得无限的存储空间并能低成本的兼容现有程序架构的。通过这个测试的读写速度来看适合将静态资源通过这种方式来实现,即节约硬盘费用又对存储的迁移影响小,还能获得更灵活的静态资源加速配置。

以后有什么项目可以考虑这种对象存储方案的搭配服务器,静态上传目录自动上传到对象存储。

发自我的iPhone


这一系列文章并没有什么具体的技术细节,开了个QQ交流群(72239907),方便大家交流读书、技术问题、图书资源共享。如果有什么软件安装等问题也可以加 calibre 交流群的QQ群(72239907)进行交流。
点击链接加入群聊【爱读书 读好书 calibre】:https://jq.qq.com/?_wv=1027&k=5vYWQsV