百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

如何用 NAS 搭建属于自己的云端书库

ninehua 2025-02-03 14:26 46 浏览

在完成基于 NAS 的 Podcast 订阅管理平台以及密码库之后,我将下一步「私有化」的目标瞄上了自己多年来的精心收藏的数字书库。

我自己阅读的电子书除了从 Kindle 商店购买书籍之外,还有就是从第三方渠道下载以及自己 DIY 的电子书了。以前这些自制的电子书都被我放在电脑的某个文件目录中,而随着时间的推移,这些电子书文件越来越多,如何对这些数字文件进行高效的管理成为我心中的一大难题。

由于我主要的阅读工具都是通过 Kindle 来阅读,很少通过手机或者平板上进行电子书的阅读,因此我从其他渠道下载以及 DIY 的电子书都是基于 Kindle 的电子书格式 azw3,这种格式虽然在 Kindle 硬件上可以获得较好的阅读体验,但这也无形中让我个人随身书库的打造带来了相当多的难点,所以如果你也想打造类似的数字书库,那么下载的电子书的文件格式可以选择更为通用的 mobi,这样无论是管理还是阅读上都会更为方便。

下面就来介绍下我的个人随身数字书库打造过程吧。

使用工具来管理自己的电子书库

以前我会将下载的 azw3 格式的电子书经过简单的重命名后,直接保存在电脑的某个目录中。当时的考虑非常简单——将 AZW3 格式的电子书直接拷贝到 kindle 的存储空间就可以在设备上阅读了。

这种操作方式最为简单,但也带来了管理上的难题——无法确认 kindle 中已经保存了哪些书、是否重复等等。之后我开始使用桌面端的电子书管理软件来对书籍进行管理,也就是使用开源的电子书管理器 calibre。

calibre 的优点在于可以通过刮削器完善书库中的电子书元数据信息,并且通过类似文件同步的方式来实现本地数字书库和 kindle 的电子书同步以及传输操作。同时 calibre 还可以实现电子书转换、编辑等操作,可以说是现阶段最为全面的本地化电子书管理工具了。

而通过将电子书导入到 calibre 中,我逐步建立起一个基于本地电脑的个人电子书数据库。而更大的设想还在后面——我能不能将其变成一个自己专属的电子书书库,并且实现全终端的在公网环境下的阅读甚至管理?

我将实现目标转向了家中的群晖。

基于 NAS 构建在线书库

做好第一步:将本地书库转移到 NAS 上

我的初期的目标很简单——实现家中局域网内的桌面设备(Windows 电脑和 Mac )可以访问书库并使用 calibre 进行管理即可,那么首先就是要将原本存储在电脑中的书库转移到 NAS 上,当然也需要为此新增一个共享文件夹。

通过群晖的「控制面板」-「共享文件夹」,点击「新建」来创建书库目录(比如说我所创建的这个 book 目录),这里需要注意的是权限部分,为了方便访问可以给管理员以及访客开启「可读写」权限。

完成之后我们需要为该目录开启局域网内的共享访问,这里回到「控制面板」,然后在「文件服务」中找到 「SMB 服务」并勾选「启动 SMB 服务」。然后在「高级设置」里面对最低以及最高的 SMB 版本进行设置,并点击「应用」。

再回到当前的 Windows 电脑中打开「网络」,然后在共享的设备中查看是否有 NAS 这个设备,然后看一下里面是否有新建的这个书库文件夹(如果提示需要验证输入 NAS 的管理员的账户和密码),如果可以在这个文件夹里新建或者删除文件就表示创建成功。

接下来就是将原本保存在 PC 上的书库目录拷贝到新建的 NAS 共享文件夹下面,我这里在 book 目录下方再创建了一个library目录,然后将之前保存到本地电脑中的书库全部拷贝进去,需要注意是一定要把 metadata.db 这个文件一并拷贝进去,也是书库数据的关键。

接下来我们打开桌面端的 calibre 开始切换书库,点击工具栏中的「书库」-「切换/创建书库」,然后导航到网络中 NAS 下对应的 book 目录并选择library这个文件夹,并且勾选「使用当前现有的书库位置作为新的位置」并点击确定,如果前面设置正常,你将会看到和之前本地书库一样的书籍列表,只不过这时候的书库的位置被转移到了局域网中的 NAS 上。

使用 calibre web 的 Docker 镜像构建书库数据库

仅仅只是让书库放在 NAS 上通过 SMB 进行目录共享,也只能通过局域网中的桌面设备(Windows 电脑或者 Mac 电脑)进行访问。显然我希望的是实现全终端的访问(这当然包括手机以及平板设备),而要想实现这个目标,就需要为 NAS 上的虚拟书库生成为 OPDS 的目录结构。

OPDS 全称为 Open Publication Distribution System,即开放出版物发行系统,通过这个系统我们就可以通过 App 或者网页浏览器来对虚拟书库进行管理和访问,而不再需要通过文件目录访问的形式来管理你的书库。而要想生成 OPDS,我们就需要使用基于 calibre 的 web 分享服务,这里我选择的依旧是我们熟悉的 「Calibre-web」,只不过这次选择了一个新的 Docker 镜像版本(其实是此前我派介绍的镜像版本有点太老了)。

在下载镜像之前,我们需要对目标的文件目录进行权限上的修改,这里需要用到的除了之前我们存放虚拟书库的 book 目录之外,还需要一个存放配置文件的目录,这里我在 docker 文件夹下创建了一个 calibre 目录。

下面还是在 File station 中,选择 book 目录以及刚刚创建的 docker/calibre 并右击属性,在「权限」选项卡中选择 「Everyone」用户组并点击「编辑」,选择所有的权限并授予全部权限(全部控制),如果有 http 用户组也可以以此类推进行权限设置,这一步的设置主要是为了方便后续生成的应用容器可以正常读写该目录。

接下来打开群晖的 Docker ,在侧栏中点击注册表并搜索 「Calibre-web」,并选择搜索结果中出现的「linuxserver/calibre-web」这个镜像,双击进行下载并等待下载完毕。

在「映像」中找到双击刚刚下载的「linuxserver/calibre-web」,双击开始创建容器。

在设置页面中点击高级设置,在「卷-添加文件夹」中选择书库目录(比我我的路径是book/library),转载路径输入/books,然后再添加一个配置文件路径(比如我的是 docker/calibre),转载路径为 /config

切换到端口设置选项卡,在本地端口上填入和容器端口一致的 8083 端口,完成之后选择点击「应用」并启动容器。

启动后在浏览器中输入http://你的 NAS ip:8083 进入设置页面,这里会要求你首先填入书库的路径,这里输入 /books 后点击 submit 完成设置,需要说明的是如果出现相关错误提示,可以在回到 File station 中检查 books 文件夹是否给「Everyone」提供了「全部控制」权限。

然后你再访问http://你的 NAS ip:8083,这时应该会直接进入到登录页面,在 Username 这里输入 admin,在 Password 这里输入 admin123 完成登录,如果看到首页上都是你收藏的书则表示 Calibre-web 已经成功创建你的在线书库了!

这里我们可以检验下 OPDS 是否创建成功,在浏览器的地址栏输入 http://你的 NAS ip:8083/opds 回车,如果弹出登录页面则表示目录创建成功。

让 NAS 上的数字书库可以在公网访问

显然我们看电子书不可能仅仅只在家中局域网环境内,我们更希望书库可以「随时随地」都可以被访问,因此这里我们需要解决的就是公网访问问题,这里除了使用 DDNS 之外,我选择了更稳定的 frp 内网穿透。

而在 NAS 上创建 frp 内网穿透服务,一般用得比较多的是使用 Docker 镜像,考虑灵活以及稳定性上,我这里选择通过计划任务来实现。

首先在群晖的 docker 目录下创建 frpc 文件夹,在 frpGitHub 主页上下载对应版本的 frp 包(这里选择的是 Linux amd64 位版本),然后完全解压缩将 frpc 文件几个 frpc.ini 文件拷贝到 frpc 文件夹中。

在群晖的 File station 打开 frpc 文件夹,使用文本编辑器打开并添加一段新的配置项目(如图)并保存。

在打开「控制面板-计划任务」,点击「新增-计划的任务-用户定义的脚本」。

在创建任务选项卡输入任务名称,用户账号可以选择 root(或者其他管理员账号),然后再切换到「任务设置」中,在「用户定义的脚本」中输入:

?nohup /volume1/docker/frpc/frpc -c /volume1/docker/frpc/frpc.ini &

在「计划」中设定任务排期(随便填写)点击保存。

回到「计划任务」页选中新建的任务并点击「设置」,勾选「保存输入结果」并将其保存到和 frp 相同的目录并点击确定。

最后在「计划任务」页中选中 frpc 任务并点击运行。这是再使用http://<映射的公网 ip>:<映射的端口地址>访问 calibre web,如果能显示 calibre web 的登录页面即表示内网穿透成功。

这样我们就可以在非家中局域网的环境下,通过浏览器和各种应用来访问自己的在线书库了。

在多个平台访问和管理私人书库

现在,我的私人数字书库已经基本搭建完毕,可以通过浏览器在任何地方管理书库,但我希望可以不仅仅只是通过浏览器来进行远程管理和访问,而希望即便是在公司的 PC 上也能管理家中的书库,甚至可以直接在手机上打开书库并下载书籍。

因此我需要解决的问题是如何在外网上安全访问到家中群晖的文件目录。

由于配置上的问题,最终我选择的依旧是通过 SSH / sftp 方式来实现远程的登录访问,首先在群晖中打开「控制面板」-「终端机和 SNMP」,勾选「启动 SSH 功能」并设置一个端口(最好不是 22)。

然后在「文件服务」中切换到 「FTP」 选项卡,然后勾选 「启动 SFTP 服务」并设置和前面相同的端口号。

最后增加一条 frpc 的配置,同样是打开 frpc.ini 并新增下面的一段配置并保存,最后重启 frpc 服务使其生效。至于确认是否成功则可以在外网的电脑通过 SSH 终端尝试是否可以登录。

在 PC 上管理 NAS 上的书库

如果不考虑网页端管理,实际上我们在外网 PC 上依旧可以通过 calibre 软件进行管理,但这需要将群晖上相应的路径挂载到文件资源管理器上,这里我通过的是 SFTP 协议进行挂载。

将远程文件路径通过 sftp 协议挂载到文件资源管理器,在 Windows 上最方便的当然是 raidrive。创建驱动器时选择 NAS 下面的 SFTP,然后在地址栏输入 frp 映射的公网 IP 以及映射的端口,输入 NAS 的账号和密码并挂载。成功后你就可以在网络位置上看到新挂载的盘符了。

打开 calibre 然后选择「书库」-「切换/创建书库」,定位到 raidrive 生成的新驱动器下的书库目录(我自己的路径是:X:\book\library)并将其添加为新的书库目录,这时候你就可以看到 calibre 可以全部载入 NAS 上的书库,并且实现外网直接通过管理。

在 Mac 上管理 NAS 上的书库

和 Windows 类似,我们依旧选择的是将群晖的文件目录通过 SFTP 映射到本地的驱动器路径中,这里我选择的工具则是 cloudmounter ,使用的办法可以参考支持 macOS / Windows,一站式网盘管理工具:CloudMounter。

挂载到访达之后,打开 Mac 上的 calibre,同样是「书库」-「切换/创建书库」,这里选择刚刚挂载上去的群晖文件目录下的 「book/library」并且选择「使用当前现有的书库位置作为新的位置」,如果设置恰当,你同样可以在 calibre 看到 NAS 的书库列表,当然管理/增添书等操作也不在话下。

在 iPhone/iPad 打开个人数字书库

移动端访问书库则要简单一些,实际上就是使用第三方 App 读取生成的 OPDS 地址来实现在线的书库访问,在 iOS 平台我选择的是 kyreader 这款 App,主要是这款应用满足我的几个需求:可以基于 OPDS 访问书库,同时支持解析 awz3 格式的电子书。

打开 kyreader 后直接点击中间的「目录」来添加书库,输入你的书库名以及对应的 URL(http://<映射的公网 ip>:<映射的端口地址>/opds)并添加。然后在弹出的账户验证中输入 calibre web 的用户名以及密码,点击确认后就可以将个人书库添加到目录中了。

打开书库,在最新添加中就可以看到你的书库目录了,这里我选择一本 azw3 格式的书,然后点击下载就可以下载到手机中,直接点击阅读就可以用 kyreader 进行阅读了。唯一的缺点就是并不支持阅读进度同步(显然这个要求有些太难了)。

在 Android 设备上打开个人数字书库

相比 iOS 端,在 Android 上访问书库并且阅读 AWZ3 格式的书反而更加麻烦一些,原因是单纯的电子书阅读器在对 azw3 格式的电子书文件存在解析问题(会识别为 bin 数据文件),因此在 Android 上需要通过两款应用来实现我的需求。

首先我需要使用这款名为 calibre companion 的应用来实现书库的连接,打开应用点击右上角的 「setting」 进入 「Connecting to calibre」,在 「Content server connection」-「IP address and Port or URL」中输入书库映射出的公网 ip 和端口号。

然后在应用首页点击右上角的 「connect」-「to Content Server」并输入书库的用户名和密码完成书库的连接。

calibre companion 连接到书库后并不提供书籍的阅读,因此点击书籍后只会提供meta数据显示或者下载,点击下载之后会将书库的电子书文件保存到 calibre companion 目录下,这时候就需要要使用另一款电子书阅读器FBReader进行电子书阅读。

实际上 FBReader 就是用来解析 azw3 格式的电子书,点击侧栏的「选择文件」,然后定位到 calibre companion 的文件目录就可以看到刚才下载的电子书文件了,这时候选中就可以进行阅读了,和 iOS 平台类似,在 Android 平台同样不支持阅读进度的同步。

结语

通过以上的一系列的操作,我终于实现了基于私有云的个人随身电子书库的搭建和外网访问,实现了个人书库的随身设备阅读访问。相比 Podcast 以及密码管理的私有云搭建,工具更多也更为复杂,但依然不失为个人书库的云端管理解决方案之一。

相关推荐

iOS与Android用户界面规范(android用户界面设计)

相信很多人都在开发设计APP时会遇到很多界面上的问题,要以多大尺寸来设计?分辨率是多少?该怎么切图给开发等等下面的文字就给出一点点技巧总结,但也要给合团队在开发时的习惯。每个工程师们所使用的控件,书写...

女子报警称价值2万的“LV”包被偷了!警方破案后,经鉴定包仅值800元

12月24日下午,西湖区的韩女士报警称自己放在办公室椅子上的价值2万的LV包被人盗走。6个多小时后,警方就找到了嫌疑人张某,男。张某说自己刚联系上海某奢饰品店的收购人员,双方谈好到上海进行实物验证交易...

手机查询车辆记录的软件?二手车能查吗?

了解二手车的车友们都知道,各个车商的措辞都不同,各辆汽车的整体车况也都有所不同,无法用统一标准来进行评判对比。在购买时,新手小白就感觉有点像是在盲买一般,毫无检查头绪。现在汽车数据记录都实现线上化的登...

用什么软件可以查4s店保养记录-4s店的保养记录怎么查询呢?

4s店的保养记录怎么查询呢?查询车辆的维保记录,最传统的方法可以直接去4S门店找工作人员,让其帮助查询。但是许多繁忙的车主没有时间跑门店,这种情况下许多查维修保养记录的网络平台应用而生。广大的车主可以...

南京几十年老店最近屡卖假烟?监控还原真相

5月2日上午,家住南京浦口永宁街道的许老先生给永宁派出所的民警送来一面锦旗。他说,自己在这条街上开小店几十年了,多亏民警迅速破案,帮他挽回了小店几十年的口碑和信誉。许老先生在南京浦口永宁街道开了个小店...

北京大案纪实:足疗店发生血案,老板和怀孕仨月女友双双遇害

2010年4月27日,北京延庆康庄镇商业街的一家足疗店内,发生了一起凶杀案,死者是这家足疗店的经营者,这是一栋三层的小楼,被害男的姓张,穿着睡衣,仰面躺在一层,他的女友躺在二楼的卧室,经法医检验,小张...

免费从网盘下载的卫星影像和高程DEM如何使用?

概述为了更好地贯彻“为您提供丰富的地图数据与专业的GIS服务”之宗旨,我们前段时间已经将全国高清卫星影像与全国30米高程DEM数据上传到了百度网盘,从而方便大家从网盘免费下载。如果你还没有免费领取到卫...

15TB可私有化部署的全国离线地图瓦片

最近,我们又干了一件“荒唐”的事,将全国地图DAT文件中的瓦片全部解压成了地图瓦片文件。为什么说“荒唐”呢?因为这是一件很费时费力的事,我们前后搞了一个多月才完成。15TB私有化离线地图瓦片首先需要申...

GIS资源库即将上线(gis资源库即将上线什么意思)

GIS服务就在水经注!水经微图(简称“微图”)桌面版,即将上线GIS资源库,并将新增一个历史影像图源。GIS资源库即将上线作为一家GIS服务公司,我们除了提供GIS产品和地图数据外,还为你整理了不少G...

如何部署私有化地图服务器(Linux版)

我们在《如何部署私有化地图服务器(Windows版)》一文中,为你分享了在Windows系统中部署私有化地图的详细操作过程。现在再为你分享在Linux系统中,部署私有化地图服务器的具体方法。《水经注地...

一款强大的AI地图制作插件MAPublisher

作为GIS(地理信息系统)行业的从业者,制图是日常工作中不可或缺的一部分。通常我们会使用ArcGIS、GlobalMapper以及PS等工具来辅助制图,现在为给家推荐一款功能强大的AI地图制作插件。...

25个图源二维码分享及使用方法(图源是啥)

我们曾在《20个图源二维码分享及使用方法》一文中,为你分享了20个图源二维码。现在在此基础之上新增5个图源二维码,共分享25个。如果你需要这些图源,请在文末查看领取方式。20个图源加上之前分享的20个...

15个图源二维码分享及使用方法(图源怎么获取)

我们曾在《10个图源二维码分享及使用方法》一文中,为你分享了10个图源二维码。现在在此基础之上新增5个图源二维码,共分享15个。如果你需要这些图源,请在文末查看领取方式。15个图源加上之前分享的10个...

基于MapBox源码在内网中加载离线卫星地图的方法

1.概述前段时间,给大家介绍了WeServer在内网中离线发布全国影像及高程DEM数据并在OsgEarth中调用的方法和在开源三维地球Cesium中如何离线加载卫星影像及高程DEM数据的方法。其中,...

45个图源二维码分享及使用方法(图源是啥意思)

我们曾在《40个图源二维码分享及使用方法》一文中,为你分享了40个图源二维码。现在在此基础之上新增5个图源二维码,共分享45个。如果你需要这些图源,请在文末查看领取方式。45个图源打开下面的网址进入水...