zotero跨Windows设备数据同步(利用OneDrive、百度云同步空间等云服务)
特别注意
不能在多个设备同步使用zotero,否则会导致同步出现异常。
基本原理
同步zotero的数据,即同步全部的文献和笔记、高亮标记信息。而这两类数据分别:
- zotero的文献笔记、文献高亮全部存储在
zotero.sqlite
这个文件中。 - zotero中的pdf文献由用户自己管理。
由此可见,只要用某种云服务同步上述两类数据即可。
zotero这两类数据在哪里?
打开Zotero软件,点击编辑-首选项
,
弹出“Zotero首选项”对话框,点击“文件和文件夹”,看到下图所示的内容:
图中两个红框标出了“已链接附件的根目录”和“数据存储位置”。
“已链接附件的根目录”
这个选项可能多数人没有设置过。我的习惯是,每次下载新的文献,都把pdf保存到统一的目录下,然后将题录信息导入zotero,再添加pdf文件链接为附件,这样可以避免zotero把文献重复拷贝。
于是,在这里把根目录设置为这个统一的目录,便于同步。
“数据存储位置”
这就是zotero.sqlite
和保存到storage
文件夹下的pdf文献所在路径。目录结构如下:
选中的这两项是需要同步的内容。
具体操作
在不同的Windows设备上,将这两类数据的路径指定为在当前设备上的实际路径。这要用到软链接
用法参考博客。
例如,我有电脑A和电脑B。现在我在电脑A有Zotero和一批文献、笔记,电脑B中的Zotero刚刚装好,内容一片空白。而文献我统一存放在E:\DownloadedArticles
路径下。云同步路径为E:\sync_cloud\
。
在电脑A上将数据同步到云端:
- 关掉Zotero程序。
- 把文献同步到云端。这一步在不同的软件中操作类似。都是把包含pdf文件的目录剪切到云同步路径下
E:\sync_cloud\DownloadedArticles
。 - 创建文献目录软链接。由于第一步剪切了
E:\DownloadedArticles
路径,所以将这个路径链接到E:\sync_cloud\DownloadedArticles
。以管理员身份启动cmd,运行命令mklink /j E:\DownloadedArticles E:\sync_cloud\DownloadedArticles
。命令完成后,在E:盘下仍能看到DownloadedArticles目录,只不过现在它是个软链接,而真正的数据在E:\sync_cloud\DownloadedArticles
下。 - 将Zotero数据同步到云端。把zotero.sqlite和storage文件夹剪切到云同步路径
E:\sync_cloud\Zotero
下。 - 创建笔记、高亮标记数据软链接,以便在Zotero软件可以不改变设置地继续读取这些数据。以管理员身份启动cmd,运行命令
mklink C:\User\A\Zotero\zotero.sqlite E:\sync_cloud\Zotero\zotero.sqlite
创建文件链接,mklink -j C:\User\A\Zotero\storage E:\sync_cloud\Zotero\storage
创建storage文件夹链接。 - 至此,
E:\DownloadedArticles
和C:\User\A\Zotero
两个路径下看起来和原来一样。而所需的数据都已同步到云端。
在电脑B上等待云同步完成,然后操作:
- 在Zotero中查看数据存储位置,例如
C:\User\B\Zotero\
;并设置已链接附件的根目录,然后关闭Zotero。 - 创建软链接,已链接附件的根目录<==>云同步路径下的DownloadedArticles。以管理员身份启动cmd,运行命令
mklink /j E:\sync_cloud\Zotero\zotero.sqlite C:\User\B\Zotero\zotero.sqlite
- 查看电脑B上Zotero的数据库文件
zotero.sqlite
和storage
文件夹所在路径C:\User\B\Zotero
,将它们删除或重命名,以便分别创建软链接到云同步路径下的对应文件。 以管理员身份启动cmd,运行命令mklink C:\User\B\Zotero\zotero.sqlite E:\sync_cloud\Zotero\zotero.sqlite
创建文件链接,mklink -j C:\User\B\Zotero\storage E:\sync_cloud\Zotero\storage
创建storage文件夹链接。 - 至此,打开Zotero,电脑B中的数据应与电脑A中的数据完全一致。
再次特别注意
不能在多个设备同步使用zotero,否则会导致同步出现异常。