Zotero 如何使用 OneDrive 实现多台电脑同步?完整配置与冲突处理教程-Zotero与OneDrive配合使用实现多设备间的同步方案
引言
目前,Zotero 多设备同步通常采用“Zotero 官方数据同步 + WebDAV 附件同步”的方式,其中坚果云因支持 WebDAV 接口而被广泛使用。不过,我已经拥有 OneDrive 2 TB 的云存储空间,因此希望充分利用现有资源,通过 OneDrive 实现 Zotero 数据库与文献附件在多台设备之间的同步。
需要说明的是,OneDrive 并不是 Zotero 官方支持的同步方案。Zotero 的数据库文件通常为 SQLite 数据库,如果多个设备同时运行 Zotero,或者在数据库尚未完成云端同步时启动 Zotero,可能会产生并发读写、同步冲突或数据库版本不一致等问题,严重时甚至可能导致数据库损坏。因此,使用 OneDrive 同步 Zotero 时,必须遵循严格的操作顺序:同一时间只能在一台设备上运行 Zotero;关闭 Zotero 后,应等待 OneDrive 完成数据库及附件文件的上传;切换到另一台设备时,也需要先确认 OneDrive 已完成同步,再启动 Zotero。
相较于 Zotero 原生支持的 WebDAV 方案,OneDrive 同步缺少数据库一致性保护,使用过程中的容错能力也相对较弱。不过,Zotero 数据库文件本身通常不大,在网络状况正常的情况下,OneDrive 可以较快完成同步,日常使用中通常不会产生明显等待。与此同时,OneDrive 能够直接同步完整的 Zotero 数据目录,具有存储空间充足、部署简单以及无需额外购买云服务等优势。
当然,更稳妥的替代方案是继续使用 Zotero 官方数据同步,并通过坚果云或自建 WebDAV 服务器同步附件。自建 WebDAV 可以绕过第三方服务的容量限制,同时保留 Zotero 原生的同步机制。但考虑到已有 OneDrive 大容量存储空间,希望降低额外成本并简化部署流程,本文将介绍一种基于 OneDrive 的 Zotero 多设备同步方案,并重点说明目录配置、设备切换流程、同步冲突规避和数据库备份等注意事项。
操作前提
本方案至少需要两台计算机参与同步。由于我目前使用的是两台 Windows 计算机,因此后续操作流程均以 Windows 系统和两台设备为例。其他操作系统或更多设备的配置思路基本一致,但具体目录位置和操作方式可能有所不同。
1. 了解 Zotero 的数据结构
在开始配置之前,需要先了解 Zotero 本地数据的基本组成。Zotero 的数据目录主要包含以下两部分:
- 文库数据库:主要对应
zotero.sqlite数据库文件,用于保存文献条目、作者、标签、笔记、分类目录,以及文献条目与附件文件之间的关联关系。 - 附件存储目录:主要对应
storage文件夹,用于保存文库中各个条目下的 PDF 文献、网页快照及其他附件。
简单来说,数据库负责记录“文献是什么、如何分类以及附件保存在哪里”,而 storage 文件夹负责保存实际的附件文件。只有保证数据库文件和附件目录在不同设备之间保持一致,才能较为完整地实现 Zotero 文库的跨设备同步。
2. 在各设备上配置 OneDrive
需要在参与同步的所有计算机上登录同一个 OneDrive 账户,并确保云盘具有足够的剩余空间。建议提前确认 OneDrive 客户端能够正常上传和下载文件,且同步状态不存在报错或长期停滞。
如果使用的是同步速度较快的 OneDrive 账户,设备切换时的等待时间会更短。根据我的实际使用体验,OneDrive for Business 的同步速度通常相对较快。不过,Zotero 文库实际占用的空间主要取决于 PDF 附件的数量和文件大小,而不是文献条目本身。
对于规模不大的个人文库,OneDrive 免费版提供的 5 GB 空间也可能满足基本需求。以我个人的文献文件为参考,5 GB 大约可以保存一千三百余条包含 PDF 附件的文献,但这一数值仅供参考:如果文献中包含大量高分辨率扫描件、书籍或大型补充材料,实际可保存的数量会明显减少。
3. 其他同步云盘的适用性
从同步机制来看,本方案并不一定局限于 OneDrive。理论上,只要云盘客户端能够在本地创建同步目录,并支持多设备之间的双向文件同步,就可能采用类似的方法同步 Zotero 数据目录,例如其他具备桌面同步功能的云盘服务。
不过,不同云盘在文件锁定、版本历史、冲突文件处理、同步时延和按需下载等方面存在差异,因此不能保证所有云盘都能获得相同的使用效果。尝试其他云盘时,建议先使用测试文库进行验证,不要直接操作唯一的正式文库。
需要特别说明的是,本方案属于非官方同步方式,Zotero 并不建议通过普通云盘直接同步正在使用的数据库文件。
本文提供的方法主要用于个人探索和经验分享。我已经连续使用该方案约三年,目前未遇到文库损坏或文件丢失问题,但这并不意味着该方案完全不存在风险。实际使用时仍应严格遵守单设备运行、等待同步完成和定期备份等操作原则。
配置过程
为了尽可能减少因数据库结构或插件兼容性差异引发的问题,建议参与同步的各台计算机安装相同版本的 Zotero,并尽量保持插件版本一致。
开始操作前,默认你已经在两台或多台计算机上安装了 Zotero,并且其中一台计算机已经拥有完整的文库数据和 PDF 附件。下文将这台设备称为“主设备”,其他设备称为“从设备”。
重要提示
Zotero 官方明确不建议将数据目录直接放入 OneDrive、Dropbox、Google Drive 等普通云盘同步目录,因为数据库文件可能因同步冲突而损坏。本文介绍的是非官方方案,使用时必须确保同一时间只有一台设备运行 Zotero,并做好独立备份。
1. 创建 OneDrive 同步目录
首先,在主设备的 OneDrive 目录中创建一个专门用于 Zotero 同步的文件夹,例如:
OneDrive
└─ ZoteroSync
├─ ZoteroData
└─ PluginData其中:
ZoteroData用于保存完整的 Zotero 数据目录;PluginData为可选目录,可用于保存 Zotero Style 等插件生成的阅读进度文件。
建议尽量使用英文路径,避免某些插件或脚本在处理中文路径时出现兼容性问题。
创建完成后,右键单击 ZoteroSync 文件夹,选择:
OneDrive → 始终保留在此设备上

等待文件夹出现表示文件已经完整下载到本地的绿色状态标记。不同版本的 OneDrive 客户端所显示的图标可能略有差异。

2. 区分两个目录设置
打开 Zotero,依次进入:
编辑 → 设置 → 高级 → 文件和文件夹

这里可以看到两个选项:
- 已链接附件的根目录
“已链接附件的根目录”仅用于管理存放在 Zotero 数据目录之外的链接附件。它不会改变普通 PDF 附件的存储位置。如果没有使用 Zotero Attanger 等插件将附件转换为链接文件,应当保持该选项不变,无须将其设置为 ZoteroSync。
- 数据存储位置
该目录中包含:
zotero.sqlite:文库数据库;storage:Zotero 默认管理的 PDF、网页快照及其他附件;- 数据库备份文件;
- 索引及部分插件数据。
3. 查找主设备的原始数据目录
在“文件和文件夹”页面中,点击数据目录旁边的:
打开数据目录或显示数据目录
即可直接打开当前正在使用的 Zotero 数据目录。官方也建议通过该按钮查找数据目录,而不是手动猜测路径。
Windows 系统中的默认路径通常类似于:
C:\Users\你的用户名\Zotero具体路径会因 Windows 用户名和此前的设置而有所不同
记录当前数据目录的位置,并确认其中至少包含以下内容:
zotero.sqlite
storage在进行后续操作前,建议将整个数据目录另外复制一份,保存到不参与 OneDrive 同步的本地文件夹或移动硬盘中,作为初始备份,避免后边翻车
4. 将主设备的数据目录迁移至 OneDrive
回到 Zotero 的:
编辑 → 设置 → 高级 → 文件和文件夹
在“数据存储位置”中选择“自定义”,然后将目录设置为:
OneDrive\ZoteroSync\ZoteroData确认后,Zotero 会提示将数据目录放在同步盘中可能存在风险。确认继续后,Zotero 会自动关闭。
找到此前记录的原始数据目录,将目录中的全部文件和文件夹复制到:
OneDrive\ZoteroSync\ZoteroData复制完成后,目录结构应当类似于:
ZoteroData
├─ zotero.sqlite
├─ zotero.sqlite.bak
├─ storage
├─ styles
├─ translators
└─ 其他数据文件注意:不要只复制 zotero.sqlite 或 storage 文件夹,而应复制原数据目录中的全部内容,以免遗漏索引、样式、转换器或插件相关文件。
5. 检查主设备的文库完整性
完成复制后,可以重新打开 Zotero,检查以下内容是否正常:
- 文献条目是否完整;
- 分类文件夹是否存在;
- PDF 附件能否正常打开;
- 笔记、标签和批注是否完整;
- 插件是否能够正常运行。
随后进入:
编辑 → 设置 → 高级 → 文件和文件夹
点击:
检查数据库完整性

如果检查通过,说明 Zotero 已经能够正常读取新的数据目录。
完成检查后,关闭 Zotero,并等待 OneDrive 将整个 ZoteroSync 文件夹上传完成。只有当 OneDrive 明确显示同步完成后,才能继续配置另一台计算机。
6. 配置第二台计算机
在第二台计算机上登录同一个 OneDrive 账户,等待 ZoteroSync 文件夹出现。
右键单击该文件夹,选择:
OneDrive → 始终保留在此设备上

随后等待整个文件夹下载完成。必须确认 ZoteroData 中的文件已经全部保存在本地,出现绿色对号。

同步完成后,打开 Zotero,进入:
编辑 → 设置 → 高级 → 文件和文件夹

将“数据存储位置”设置为第二台计算机上的:
OneDrive\ZoteroSync\ZoteroData由于两台计算机的 OneDrive 根目录可能不同,因此应在本机重新选择文件夹,不要直接复制第一台计算机的绝对路径。
确认后,Zotero会提示同步盘风险并自动关闭。此时不要立即反复启动 Zotero,应打开OneDrive\ZoteroSync\ZoteroData文件夹确认:
- OneDrive 已完成全部文件下载(出现全绿色对勾);
zotero.sqlite已同步在本地;storage文件夹中的附件已经下载;- 当前没有同步冲突或重复文件。
确认无误后,重新打开 Zotero,检查文献条目和附件是否完整,并再次执行:
编辑 → 设置 → 高级 → 文件和文件夹 → 检查数据库完整性

检查通过后,即完成两台计算机之间的 Zotero 文库同步配置。
7. Zotero Style 阅读进度同步
如果安装了 Zotero Style 插件,并希望在不同设备之间同步阅读进度,可以进入该插件的 Storage 设置,将数据保存方式设置为:
存储在本地 JSON 文件中
为了避免插件文件与 Zotero 数据库文件混杂,建议将 JSON 文件保存到:
OneDrive\ZoteroSync\PluginData
在每台计算机上均选择同一个 OneDrive 同步目录。这样,阅读进度文件也可以随着 OneDrive 在不同设备之间同步。
由于插件版本更新后,设置项名称和文件格式可能发生变化,配置前应确认各设备安装的是相同版本的 Zotero Style。
8. 是否需要 Zotero Attanger
本方案不依赖 Zotero Attanger。
在 Zotero 默认的附件管理方式下,导入的 PDF 会保存在数据目录中的 storage 文件夹内。由于本方案已经同步了完整的数据目录,因此文献数据库和 PDF 附件会一并同步,无须借助额外插件移动附件。
Zotero Attanger 更适合需要自定义附件目录、统一重命名文件,或者采用“链接附件”工作流的用户。对于希望保持 Zotero 默认数据结构、仅通过 OneDrive 同步完整文库的用户,该插件并不是必需组件。
注意事项
完成配置后,日常使用时最重要的原则是:同一时间只在一台计算机上运行 Zotero,并在切换设备前确认 OneDrive 已经完成同步。
OneDrive 同步的不仅是 PDF 附件,还包括 zotero.sqlite 数据库。Zotero 运行过程中会持续读取和修改数据库,而 OneDrive 也可能尝试上传正在变化的文件。如果两台计算机同时运行 Zotero,或者一台设备尚未上传完成,另一台设备就开始修改数据库,就可能产生版本冲突、冲突副本,甚至造成数据库损坏。
1. 不要在两台计算机上同时运行 Zotero
两台计算机不能同时打开 Zotero(我觉得也没有人有这种需求,看文献需要俩电脑都点开么)。这里的关键并不是能否同时查看同一个 PDF,而是两台设备可能同时修改各自本地的数据库文件。
例如,设备 A 新增了一篇文献,设备 B 同时修改了另一篇文献的标签。此时,OneDrive 面对的是两个分别发生变化的 zotero.sqlite 文件,而 SQLite 数据库并不能像普通文本文件一样自动合并修改内容。最终可能出现以下情况:
- OneDrive 生成数据库冲突副本;
- 一台设备的修改覆盖另一台设备;
- Zotero 读取到不完整或不一致的数据库;
- 文献条目、附件关联、笔记或阅读进度出现异常。
因此,无论是否认为自己“只是在看文献”,都应避免在两台设备上同时运行 Zotero。
2. 关闭 Zotero 后再等待 OneDrive 上传
在 Zotero 使用过程中,OneDrive 可能已经开始同步附件或数据库,但由于数据库仍处于读写状态,相关文件可能暂时无法稳定上传,或者在上传后又继续发生变化。

因此,在设备 A 上完成文献阅读、批注、条目录入或分类整理后,应按照以下顺序操作:
保存当前操作
↓
完全关闭 Zotero
↓
等待 OneDrive 完成上传
↓
确认同步状态正常
↓
再关机或切换设备
关闭 Zotero 后,可以点击 Windows 任务栏右下角的 OneDrive 图标,查看当前是否仍有文件正在上传。建议等到 OneDrive 显示“文件已同步”或类似状态后,再关闭计算机。
这一过程通常不需要等待很长时间(其实我们也没有那种看完文献就关机,打开电脑就看文献那么紧急的场景,所以这样的等待没有什么不能忍受的问题)。Zotero 数据库本身一般不大,日常修改产生的数据量也有限。真正耗时较长的情况通常是一次性导入了大量 PDF,或者新增了体积较大的附件。
3. 在另一台设备上等待下载完成
假设已经在设备 A 上完成阅读,并确认 OneDrive 已经上传完成,那么切换到设备 B 后,不要立即打开 Zotero。
正确顺序应为:
启动设备 B
↓
等待 OneDrive 开始同步
↓
确认 ZoteroData 已下载完成
↓
检查 OneDrive 不再显示正在同步
↓
打开 Zotero
尤其需要确认 zotero.sqlite 数据库已经更新到本地。只有设备 B 获得了设备 A 上传的最新数据库,才能继续在正确的文库版本上操作。
实际使用中,这种等待通常是可以接受的。大多数情况下,从打开计算机到完成其他准备工作的时间,已经足够 OneDrive 同步数据库。只要养成“先看 OneDrive 状态,再打开 Zotero”的习惯,就不会对正常使用造成明显影响。
4. 不小心提前打开 Zotero 怎么办
如果 OneDrive 尚未同步完成,就误打开了 Zotero,需要根据是否已经产生新修改分别处理。
情况一:只是打开 Zotero,没有进行任何操作
如果只是启动了 Zotero,没有新增文献、修改条目、添加批注、调整分类或改变阅读进度,可以立即关闭 Zotero。
关闭后,等待 OneDrive 完成下载,再重新打开 Zotero即可。由于没有产生新的有效修改,一般不会造成明显影响。
不过,即使只是打开 Zotero,程序也可能更新少量内部状态或插件数据,因此仍应尽快关闭,不要长时间停留。
情况二:已经新增或修改了数据
如果在旧数据库版本上已经进行以下操作:
- 新增或删除文献;
- 修改标题、作者、标签或分类;
- 添加笔记或批注;
- 导入新的 PDF;
- 修改附件关联;
- 更新插件阅读进度;
此时不要继续使用,也不要让两台设备反复同步数据库。应立即关闭 Zotero,并先保留当前数据目录的备份。
如果本次修改内容较少,最稳妥的处理方式是:
- 记录本次新增或修改的内容;
- 关闭 Zotero;
- 等待 OneDrive 同步到正确的最新数据库;
- 重新打开 Zotero;
- 手动重新录入刚才的修改。
这样最多只需要重新完成本次误操作期间产生的少量工作,可以避免尝试合并两个数据库版本所带来的更大风险。
如果本次已经录入了大量内容,不建议直接覆盖或删除文件。此时应先分别备份两台设备上的完整 Zotero 数据目录,再判断哪个数据库包含更完整的数据。
5. 出现冲突副本时立即停止操作
如果在 OneDrive 文件夹中发现类似以下文件:
zotero-计算机名称.sqlite
zotero-conflicted copy.sqlite
zotero.sqlite-冲突副本
或者发现多个名称相近、修改时间不同的数据库文件,说明同步过程可能已经产生冲突。
此时应当:
- 关闭所有设备上的 Zotero;
- 暂停在两台设备上继续修改文库;
- 分别备份各设备上的完整
ZoteroData文件夹; - 根据修改时间和文库内容判断最新且完整的数据库版本;
- 确认恢复完成后,再重新启动同步。
不要仅凭文件名判断哪个文件最新,也不要同时保留多个数据库并期待 Zotero 自动合并。OneDrive 创建的冲突副本通常只是不同版本的独立文件,并不意味着其中的数据已经完成合并。
实际在使用过程中,可以找到需要保留的那个sqlite文件后,把文件名恢复为zotero.sqlite即可恢复这个版本的文献库。
8. 日常使用
整个方案的日常使用逻辑可以概括为:
先关闭,后上传;
先下载,后打开;
不同开,不抢写;
有冲突,先备份。
只要严格遵守这一顺序,OneDrive 同步 Zotero 的使用过程通常不会带来明显负担。该方案的核心并不是依靠 OneDrive 自动解决数据库冲突,而是通过人工控制设备切换顺序,从源头避免两个数据库版本同时产生。