将 sabre/dav 服务器与 floccus 一起使用

Using sabre/dav server with floccus

[编辑 2]:长话短说 - floccus 无法使用摘要授权,这是我的 sabre/dav 服务器的设置方式。参见 this GitHub issue


我已经按照 here 的说明在 Raspberry Pi 4 上设置了一个 sabre/dav 服务器。当我在浏览器中导航到我的服务器 URL 时,我进入了 saber 网络界面。我可以在这里上传文件,它们会出现在我的 public 文件夹中。

现在,我正在尝试设置 floccus 以将我的书签与服务器同步,但我碰壁了。我输入了我的服务器 URL 和凭据,就像我通过浏览器连接一样,我指定了书签文件应该存储的路径。我保存这些设置,然后单击 'Sync Now',但我最终遇到错误:E018: Couldn't authenticate with the server. 错误旁边有一个按钮可以下载调试日志,但它是一个空文件。

我已经尝试了多种设置路径的方法——一个文件位于我的 public 文件夹的根目录 (bookmarks.xbel),一个文件位于更下方的目录 (bookmarks/bookmarks.xbel ),无论有没有首先创建的文件,所有这些都会导致相同的错误。

在此之前有没有人对此有任何好运,也许能够阐明我在这里做错了什么?

[编辑]:使用@Marcel Klehr 的回答,当我尝试同步时,我设法追踪到服务器发送的响应:

<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:sabredav-version>3.2.2</s:sabredav-version>
  <s:exception>Sabre\DAV\Exception\NotAuthenticated</s:exception>
  <s:message>No 'Authorization: Digest' header found. Either the client didn't send one, or the server is misconfigured</s:message>
</d:error>

这些是 headers:

看起来 floccus 使用的是 Basic Authorization 而不是 Digest。我可以在 this GitHub issue 中看到 floccus 不支持 Digest。我将尝试重新配置服务器以使用 Basic,看看是否可以解决问题。

[编辑 2]:切换到基本授权解决了这个问题。我已将@Marcel 的回答标记为已接受的答案,因为他们的指导帮助我找到了问题所在。

在我看来,您的实际问题不在于路径本身,而在于服务器(只需查看错误)。

您试过删除最右边的斜线吗?

换句话说,将http://my-public-ip/sabre/server.php/替换为http://my-public-ip/sabre/server.php

您可以通过以下方式调试插件的网络请求:

火狐
  • 前往 about:debugging -> This firefox
  • 单击絮凝物条目旁边的 inspect 按钮
  • 转到检查器选项卡中的网络选项卡
  • 通过单击您选择的帐户的 sync now 触发同步。
  • 检查失败的网络请求
Chrome
  • 转到chrome://extensions
  • 启用Developer mode
  • 单击“检查视图:”旁边的 floccus 条目中的 dist/html/background.html 按钮
  • 转到检查器中的网络选项卡 window
  • 点击您选择的帐户的sync now触发同步
  • 检查失败的网络请求