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

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

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

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

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

因为用cos对象存储的回源还折腾了几个问题才能正常跑起来,第一个是回源设置不能内网,改为外网回源抓取一直不生效,发了腾讯云工单才解决。第二个是cos回源后默认域名访问静态文件是直接下载文件,css、js 这些文件无法调用,需要绑定一个自定义域名来访问。使用cos的资源需要独立域名而python flask框架的url_for 函数不能设置域名前缀,测试了flask的全域名配置也没试验成功,用了flask_cdn插件又与calibre-web不太兼容,url_for里filename设置为变量不能加载并报错。自己修改了模板,新增了一个函数单独处理无法兼容的地方。

最后又因为caibre-web阅读图书需要ajax加载static/目录的资源,由于对象存储抓取方式增加了独立域名产生了跨域请求的问题。研究了一阵子把calibre-web 和cos、cdn设置跨域缓存机制。calibre-web使用了flask-cors插件,腾讯云存储、cdn则单独配置了跨域访问权限才成功。其中心酸不表。

现在可以正常使用cdn加速域名和图片处理域名进行加速,用起来腾讯云的这种优图服务的图片处理方式产生了独立域名,会显著增加程序部署难度,也产生了不必要的程序复杂度。而类似七牛云储存的方式,同一资源域名下整合所有插件服务的方式更简单一些。

发表评论

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