Calibre-web 个人图书库搭建记 15: 1m带宽主机的坑

在腾讯云主机上安装了calibre-web程序,因为主机只有1M带宽,折腾了很长时间的访问优化。现在访问优化基本上能静态访问的图片、css、js、图书下载都放到了不限带宽、不限容量、按照容量和流量收费的对象存储中了。

但遗漏了一个电子书管理很重要的功能,发送到kindle的服务也是通过服务器发送电子邮件,而往外传数据是用的出口带宽,如果实时发送电子邮件带上几M的书附件就太慢了,发一本书带宽跑满的情况下也要很长时间,程序经常超时,也影响正常网站访问。这个问题直到自己尝试发送到kindle时才发现。

研究了一下在腾讯云可以有几种方式可以处理这种非实时要求的大附件发送要求,一种是直接加带宽,目前看成本收益不高。另一种是通过其他服务发送邮件和附件,腾讯云的五服务器函数可以干这个事情,scf无服务器函数可以直接读取对象存储内容,也能通过smtp 发送邮件,可以通过腾讯云消息队列smq进行调用。

[……]

阅读更多

Calibre-web 个人图书库搭建记 14 python-cdn、python-cors插件 和腾讯云cos对象存储、CDN的设置

最近开始扩充书库,折腾程序中多了很多思考和感悟,因为眼睛又干又涩不能看手机了,很久也没有更新日记和看书了,现在做个记录。

折腾书库折腾了一段时间,开始考虑整个折腾过程中哪些是值得提前优化的?哪些事情是根本不需要现在这个阶段进行提前优化的?

本地磁盘的缓存磁盘空间现在也不着急进行优化,磁盘不够用的时候只需要花几百块钱买一块新的云磁盘挂载即可,不需要在本地磁盘上做太多对象存储化的优化。针对图书库的对象存储优化工作也可以考虑放到对象存储回源来实现,适量冗余可以减少很多定制的折腾问题。

测试了前面想到的cos对象存储内网回源的方式发现不能成功,后面把对象存储回源改为外网回源,在低访问和calibre-web 的static 资源冷数据访问量低的情况下足够使用。

[……]

阅读更多

Calibre-web 个人图书库搭建记 13 python,linux 相关的知识学习

昨天半夜又搞了一下web服务器,想着将calibre-web的静态目录static放到对象存储中,将web服务器的存储空间给解放出来,因为calibre-web的在线阅读用的目录就是static目录,整个目录一直是在不断的增长中的,calibre-web对整个解压目录没有采用统一文件夹,而是直接放到了static的跟目录下了。

这让整个迁移和实时解压文件产生了问题,将静态css,js这些文件通过腾讯的对象存储的挂载磁盘方式挂载static目录后python flash 对整个静态目录读写貌似慢了很多。主要体现在第一次对文件的读写上,因为要上传和实时解压上影响了程序响应效率。

既然上传资源文件到对象存储,那就继续考虑对象存储文件的外部访问通过对象存储的cdn方式访问。找到python flash_cdn 插件,可以统一配置 url_for调用static 的资源cdn 域名,在访问url_for函数生成时自动生成cdn 域名前缀的资源。

[……]

阅读更多

博客迁移到腾讯云主机

今天收到阿里云虚拟主机的网站暂时停机邮件,原因是虚拟主机资源占用过多,需要手工启动网站才能继续运行。中午没事就想着把博客迁移到腾讯云主机上,放到Calibre-web的服务器上,服务器如果留着不往上挪一直也空闲着。

之前腾讯云主机安装了宝塔面板的环境,创建一个网站就可以了,数据库就先不迁移,还是放在阿里云的云rds上,通过公网访问数据库速度有点受影响。有空的时候再做个迁移。

–抽空把数据库也做了迁移,迁移的时候发现了一个坑,数据库内容字段中有单双引号导致数据库通过phpmyadmin和宝塔面板都不能导入,尝试了多次都不行,导入一直失败。 通过linux 的source 命令导入,虽然可以导入,但还是少了一张表没能导入成功。手工 导入了一部分表的数据,剩下的一部分后面再研究一下具体是说明错误。

[……]

阅读更多

Calibre-web 个人图书库搭建记 12 增加增长量,迁移本地书库

这两天测试了一次开通两个小蜜蜂账号,这样每天可以增加100本的存储量,小蜜蜂防止滥用下载的程序还挺严格,一不小心就被封禁下载4小时。试了很多次才用两个浏览器下载完成。

下载完的书籍重复还是很多,为了防止浪费每天的下载次数,通过chrome 的自定义搜索,在加入书库的时候先搜索一下书库是否存在相同的书,相同的话就不再下载。自定义搜索用起来还是挺好用的。

因为增加了书库下载量,自己感觉笔记本整天干转换,下载图书的工作太费硬盘,基本上calibre转换为epub和mobi时正常使用电脑都受影响。想着测试一下把calibre的本地书库整理工作放到华为云桌面上。复制文件迁移到云桌面,配置cos的本地同步工具,但从笔记本拷贝过去的本地同步工具还要全量上传一次到云存储上。迁移到云桌面后的书库目录有变化,又研究一下虚拟磁盘把云桌面的磁盘虚拟一个E盘出来,保持与原来相同的目录后cos本地同步工具就可以沿用同步记录了,不需要再次全量上传一次到云存储了。

[……]

阅读更多

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 可以辅助索引检索。自己人工用排序将没有意义书籍标签先处理了,处理了几千条。通过批量管理吭哧吭哧搞了一个小时,一晚上基本都在干整理标签的事。整理完以后还剩一些标签需要再规整,但先将广告标签和书名当标签的情况处理掉了。

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

[……]

阅读更多

一些新了解到的营销工具和创业点子共享一下

北蚁论坛的网络影响工具:https://www.inorthant.com/toolbox/

这个工具清单涵盖了北蚁论坛公司做海外营销用过的一些营销工具,覆盖比较广泛,可以考虑挑选适合自己的工具试用体验。包含:建站/着陆页、SEO/SEM、数据分析 、社交营销、转化率优化、内容创作、邮件营销、视觉制作、工作效率类的各种工具网站或软件。

GitHub上的共享:中国独立开发者项目列表 — 分享大家都在做什么
https://github.com/1c7/chinese-independent-developer
聚合所有中国独立开发者的项目:作为开发者其实比较好奇其他人在做什么业余项目(不管目的是做到盈利/玩票/试试看) 所以特意建了这个库。欢迎各位开发者把自己的项目加进来~ 发 Pull Request 或 Issue 即可 (入选标准:必须是网站或App,不能是开发者工具或论坛型网站)

这个列表可以让你追踪到很多独立开发者在做什么的动向,我在其中还发现了一个 采访 “独立开发者” 和 “远程工作者” 做产品盈利的故事(http://sideidea.com/) 的项目,这个项目让我了解了一些个人开发者的故事,也从中学习一些产品和创业内容的思路,当然这些故事和采访有时效性,也有不一定真实和不完整的问题。不盲信,不盲从,从中学习到别人的优点和思路即可,找到适合自己的自由职业之路才是自己要学习和实践的。

[……]

阅读更多

一粒沙子的故事

我是一粒沙子,是正统的海沙,前几天刚与我的伙伴一起从海水漂浮到沙滩。

现在身上开始暖和起来,阳光晒在我身上,温度适宜。晒过一会就会有些过热,然后我就挪挪脚换到其他沙子下面去。

在我周围包裹了无数的沙子伙伴,但我不知道他们是不是跟我一样能够思考。我每次发出声音都没有沙子回答我,但我能听的懂人类的语言。

实际上我也只能听懂一部分人的语言,沙滩上会有来自不同世界和国家的人,语言也各种各样,有很多语言我是听不懂的。

我能听懂的也只有中文的普通话,中国据说有太多方言了,我大部分都听不懂。我能听懂的语言就说到这里。具体我是如何听懂人类语言的我也不太明白,也许是天生,也许是在沙滩上呆久了,反正在我产生思想并能思考开始,我就能听得懂人类的语言了。

[……]

阅读更多