Featured image of post 利用 WebDAV 同步 Zotero 的文献

利用 WebDAV 同步 Zotero 的文献

起因

我手头有两台 Windows 设备,需要在它们之间同步文献。我使用 Zotero 作为文献管理软件,但是它的免费云同步空间只有 300 MB,可能不太够用,便想利用自己的 Debian 服务器通过 WebDAV 的方法进行同步。

需要注意的是,WebDAV 这种同步方式不能对笔记、批注等数据进行同步。这些数据只能通过 Zotero 自己的同步服务进行同步。WebDAV 可以对文献的 PDF、网页等附件进行同步。


搭建 WebDAV 服务器

在这里,我选择使用 Nginx 作为 Web 服务器。Nginx 的安装与基本配置在此不做展示。在接下来的 WebDAV 配置中,还需要使用 nginx-dav-ext-module 组件,使用以下命令在 Debian 服务器上安装该组件。

1
sudo apt-get install libnginx-mod-http-dav-ext

服务器上安装了一块用于存储文件的大容量硬盘,其挂载与 /mnt/storage。创建 WebDAV 存储文件的目录,并将权限移交于 www-data 用户。

1
2
sudo mkdir /mnt/storage/webdav
sudo chown -R www-data:www-data /mnt/storage/webdav

我使用二级域名的方案进行配置,以 webdav.server.lan 作为 WebDAV 服务器域名。利用以下命令创建并编辑配置文件。

1
sudo vi /etc/nginx/conf.d/webdav.conf

在配置文件中粘贴以下内容,并根据具体情况进行调整。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
server {
    listen 80;
    server_name webdav.server.lan;

    charset utf-8;

    root /mnt/storage/webdav;

    auth_basic realm_name;
    auth_basic_user_file /etc/nginx/conf.d/.webdav_passwd.list;

    autoindex on;

    dav_methods PUT DELETE MKCOL COPY MOVE;
    dav_ext_methods PROPFIND OPTIONS;
    dav_access user:rw group:rw all:r;

    create_full_put_path on;

    client_max_body_size 1024m;
}

我使用的是内网域名,不方便配置 SSL,因此使用 HTTP 协议。编辑 server_name 字段以调整服务器要绑定的域名;编辑 root 字段调整 WebDAV 存储文件的目录;编辑 client_max_body_size 字段调整文件大小限制。在这里我还启用了登陆验证,编辑 auth_basic_user_file 字段调整用户登录信息存储位置。使用以下命令设置第一个用户与其登录密码。下面命令中的 username 可替换为所需的用户名,注意区分大小写。

1
2
sudo echo -n 'username:' | tee -a /etc/nginx/conf.d/.webdav_passwd.list
sudo openssl passwd -apr1 | tee -a /etc/nginx/conf.d/.webdav_passwd.list

使用以下命令测试配置文件是否有效。

1
sudo nginx -t

完成测试且无报错,即可重启 Nginx 服务。

1
sudo systemctl restart nginx.service

重启服务后在 Windows 设备上打开浏览器,进入 webdav.server.lan 便可看到 WebDAV 网页。


Zotero 同步配置

在 Windows 设备上打开 Zotero 软件,在菜单栏中点击“编辑”,在下拉菜单中点击“首选项”,随后在弹出的“Zotero 首选项”对话框中点击“同步”选项卡。如若尚未注册过 Zotero 账号,则需要注册一个。登录账号后,需要将同步方式从 Zotero 变更为 WebDAV,选择 HTTP 协议,输入域名、用户名、密码。

“Zotero 首选项”中的“同步”选项卡

点击“验证服务器”按钮,因为此时 WebDAV 存储文件的目录为空,第一次点击按钮会提示自动创建 zotero 目录,再次点击按钮便会提示设定成功。

同步设定成功提示

完成配置后点击“OK”按钮,并点击 Zotero 窗口右上角的绿色同步按钮进行同步。刷新浏览器中的 WebDAV 网页,可以看到新增了一个 zotero 目录,进入目录后若出现同步文件,则完成同步配置。

最后更新于 Feb 18, 2024