KOReader 进度同步配置指南:跨设备接续阅读的实操指南
【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader
晚上在手机上把一本书翻到第 83 页,第二天想换 Kindle 接着读,结果它还停在第 30 页?这就是 KOReader 跨设备阅读进度同步要解决的问题:把"读到哪了"这件事存到云端,任何一台登录了同一账号的设备打开这本书时都能对上位置。
配完之后你能得到:打开书自动跳到云端最新位置;关书、休眠时自动把当前位置推上去;两台设备同时读过一本书时,弹窗告诉你哪边更新,由你决定跳不跳。
动手之前确认这几件事:
- 两台设备都装了 KOReader(Kindle、Kobo、手机等任意设备组合都行)
- 设备能连上网络
- 想一个能记住的用户名和密码
- 如果打算开自动同步,把网络设置里"Wi-Fi 关闭时的动作"改成"打开"(开自动同步时 KOReader 会直接提醒你)
先花 10 秒理解一下原理,后面调参数就不迷糊了。KOReader 用一个叫 KOSync 的插件干这个活,核心逻辑在 plugins/kosync.koplugin/。每本书在服务器上的进度是以"文档标识"为键存的:默认取文件内容的 MD5 校验和,意思是两台设备上的文件必须一模一样才算同一本书。进度本身包含百分比、xpointer 位置、设备名和时间戳。动作只有两个:开书时拉(pull)云端进度,关书或休眠时推(push)本地进度;哪边新就用服务器返回的时间戳和本机最近翻页时间比。推失败(断网)不丢数据,会存进本地队列,网络恢复后自动补推。
注册并登录同步账号
打开主菜单(左上角汉堡按钮),找到Progress sync(进度同步),点里面的Register / Login。弹出输入框后填用户名和密码,第一次点Register,以后都点Login。看到"Logged in to KOReader server."的提示就成了。放心,密码只在本地算成 MD5 哈希再发出去,明文凭据不上传,存在本地的kosync.lua配置文件里。
菜单里还有个Custom sync server项,默认指向官方同步服务器,普通用户不用动;自己搭了 KOSync 服务才需要改它。
设置同步方向和策略
账号配好之后,进Sync behavior子菜单,这里有两组开关,别被术语绕晕:
- Sync to a newer state:云端有更新的位置时怎么办。默认Prompt(弹窗问你,显示来源设备名和百分比),也可以Silently直接跳过去,或Never不管。
- Sync to an older state:你本地读得比云端更远时怎么办。默认Never——不往回跳,防止你在某台设备上读完了,换设备打开却被拽回前文。
大多数人的最佳组合就是"新的问我,旧的不理",保持默认即可。
开启自动同步
回到 Progress sync 菜单,勾选Automatically keep documents in sync。KOReader 会先做一次拉取,确认云端位置不会被你马上关书时推上来的旧进度盖掉——这个细节挺贴心。
开好之后行为是这样的:开书自动拉取最新位置;关书、设备休眠时自动推送当前位置;翻满设定页数也会推一次。断网时推送进队列,网络恢复自动补推,不用你操心。
旁边那项Periodically sync every # pages就是设页数阈值的,拖个数字出来,点 Set。
手动推/拉一次验证
回到菜单,点Push progress from this device now推一次,然后在另一台设备上打开同一本书,点Pull progress from other devices now。看到Progress has been synchronized.提示,整条链路就通了。
关键参数速查
| 参数 | 默认 | 作用 |
|---|---|---|
| 自动同步(auto sync) | 关 | 开书拉取、关书推送 |
| 每 N 页同步一次 | 0(关) | 翻阅超过 N 页才触发一次推送,省流量 |
| 同步到新位置 | 弹窗 | 发现更远的进度时:问 / 静默跳 / 不处理 |
| 同步到旧位置 | 关闭 | 本地读得更多时:不往回跳 |
| 文档匹配方式 | 按内容校验 | 二进制校验(文件须完全一致)或按文件名匹配 |
| 设备主机名 | 机型名 | 同步弹窗里显示"来自哪台设备" |
进阶调优
- 两台设备的书文件名不一致(比如一台叫
book.epub另一台叫book_v2.epub):把Document matching method改成按文件名匹配,它会用文件名的 MD5 做标识,内容不完全相同也能对上;反过来,同内容不同名的文件在二进制模式下会同步不到。 - 自架同步服务器:有 NAS 或服务器可以自建 KOSync,把Custom sync server填上你的地址,进度数据就完全留在自己手里。
- 给设备起名字:Device hostname里给每台设备设个名字(比如"手机""Kindle"),弹窗提示"来自 XXX 的 83% 位置"时一眼就能分辨。
你可能会遇到的情况
- 自动同步勾不上去:提示要求把网络设置里的"Wi-Fi 关闭时的动作"改成"打开"。因为自动同步要随时能连网,"每次问我"在这种场景下没法用。
- 提示"Latest progress is coming from this device":说明云端最新进度本来就是这台设备推上去的,不用任何操作,关掉就行。
- 离线推送失败:别慌,进度进了本地队列,联网后自动补推。只有账号失效(认证失败)才会直接报错,重新登录即可。
现在你可以放心把书丢给任意一台设备:手机读到一半,Kindle 上打开就是同一个位置。想看实现细节的话,plugins/kosync.koplugin/main.lua 里的updateProgress和getProgress两个函数就是推和拉的全部逻辑,数据存在哪、怎么比对,对照着看一遍就明白了。
【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考