Skip to content

feat: support DUFS webdav - #314

Open
wfion wants to merge 2 commits into
appshubcc:mainfrom
wfion:codex/debug-webdav-149-118-74-70
Open

feat: support DUFS webdav#314
wfion wants to merge 2 commits into
appshubcc:mainfrom
wfion:codex/debug-webdav-149-118-74-70

Conversation

@wfion

@wfion wfion commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

修改点:

  • 根因是 DUFS 同时返回 Digest 和 Basic 两条 WWW-Authenticate,webdav_client 1.2.2 使用单值接口读取时直接抛异常。
  • 在响应拦截器中合并多条认证挑战,使依赖能够继续进行 Digest 认证。
  • 新增回归测试,覆盖双认证头、连接检测、创建目录、上传及恢复流程。
  • 实际服务器已验证 Digest、MKCOL、PUT、GET、DELETE 均正常。

根据 @xream 提供的公网服务 测试日志文件如下, 无法进行上传

Log(logLevel: LogLevel.info, payload: [APP] WebDAV ping successful, dateTime: 2026-07-27 21:35:04)
Log(logLevel: LogLevel.info, payload: [APP] updateGroups error: getProxiesGroups returned empty after inner retries, dateTime: 2026-07-27 21:35:14)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV ping successful, dateTime: 2026-07-27 21:35:22)
Log(logLevel: LogLevel.info, payload: [APP] updateGroups error: getProxiesGroups returned empty after inner retries, dateTime: 2026-07-27 21:35:22)
Log(logLevel: LogLevel.info, payload: [APP] Starting backup: 0 profiles, current: null, dateTime: 2026-07-27 21:35:24)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV backup: uploading 2731 bytes to /Bettbox/backup.zip, dateTime: 2026-07-27 21:35:24)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV mkdir warning (may already exist): Exception: "www-authenticate" header has more than one value, please use Headers[name], dateTime: 2026-07-27 21:35:24)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV backup attempt 1 failed: Exception: "www-authenticate" header has more than one value, please use Headers[name], retrying in 2s..., dateTime: 2026-07-27 21:35:24)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV backup: uploading 2731 bytes to /Bettbox/backup.zip, dateTime: 2026-07-27 21:35:26)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV mkdir warning (may already exist): Exception: "www-authenticate" header has more than one value, please use Headers[name], dateTime: 2026-07-27 21:35:27)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV backup attempt 2 failed: Exception: "www-authenticate" header has more than one value, please use Headers[name], retrying in 4s..., dateTime: 2026-07-27 21:35:27)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV backup: uploading 2731 bytes to /Bettbox/backup.zip, dateTime: 2026-07-27 21:35:31)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV mkdir warning (may already exist): Exception: "www-authenticate" header has more than one value, please use Headers[name], dateTime: 2026-07-27 21:35:32)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV backup failed after 3 attempts: Exception: "www-authenticate" header has more than one value, please use Headers[name], dateTime: 2026-07-27 21:35:32)
Log(logLevel: LogLevel.info, payload: [APP] WebDAV backup failed: Exception: "www-authenticate" header has more than one value, please use Headers[name], dateTime: 2026-07-27 21:35:32)
Log(logLevel: LogLevel.info, payload: [APP] updateGroups error: getProxiesGroups returned empty after inner retries, dateTime: 2026-07-27 21:35:47)
Log(logLevel: LogLevel.info, payload: [APP] updateGroups error: getProxiesGroups returned empty after inner retries, dateTime: 2026-07-27 21:36:13)
Log(logLevel: LogLevel.info, payload: [APP] updateGroups error: getProxiesGroups returned empty after inner retries, dateTime: 2026-07-27 21:36:43)
Log(logLevel: LogLevel.info, payload: [APP] updateGroups error: getProxiesGroups returned empty after inner retries, dateTime: 2026-07-27 21:39:38)

@appshubcc

Copy link
Copy Markdown
Owner

@wfion 思路是对的,按理说这个逻辑也不复杂,具体你们测试通了就行,我没这个场景就不试了。。

@appshubcc

Copy link
Copy Markdown
Owner

试了下,合了

@wfion

wfion commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

试了下,合了

好的 我去试试pre版本

@wfion

wfion commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

试了下,合了

好的 我去试试pre版本

@wfion wfion closed this Jul 28, 2026
@appshubcc

Copy link
Copy Markdown
Owner

@wfion 下个pre~

@wfion

wfion commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

试了下,合了

@appshubcc pre12版本 测试x86安卓 好像代码没在里面

@wfion wfion reopened this Jul 28, 2026
@appshubcc

Copy link
Copy Markdown
Owner

@wfion 正在编译

@xream

xream commented Jul 28, 2026

Copy link
Copy Markdown

DUFS 能用了

@wfion

wfion commented Jul 28, 2026

Copy link
Copy Markdown
Contributor Author

@appshubcc 这个pr也可以了,两个应该都行了~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants