fix(sync): (Codex) WebDAV verify() 过弱#1395
Conversation
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
|
设计兜底过渡了,导致了这个#1395 问题 我真不愿意再合这些 看起来正常的修复了,修复了一部分问题,然后又引入新的问题 测试没那么全,得不到用户反馈 这个问题是 坚果云 不支持这个文件名导致的:sandbox name is too long |
|
这个 PR 引入的写探针在坚果云(jianguoyun)等不允许根目录写入的 WebDAV 服务上会导致 verify 失败,进而让备份/同步整个跑不起来。详见 #1444 以及修复 PR #1445。 简要复盘: #1445 把 verify 回退到只读校验( |
|
补充修正一下上一条的根因分析:实际错误是坚果云返回的 `sandbox name is too long`——它对 WebDAV 目录名有长度限制,这个 PR 引入的探针目录名 `.scriptcat-verify-${Date.now()}-${Math.random().toString(36).slice(2)}` 大约 43 字符就被拒了,并不是我之前说的"根目录不可写"。结果一样:verify 阶段失败,整个备份/同步跑不起来(见 #1444)。 #1445 仍然按移除写探针的方向修:
|
verify()不再只检查getQuota(),而是验证 WebDAV 同步实际需要的能力:能列出目录、能创建临时目录、能写入探针文件、能删除探针文件和临时目录。这样能提前发现“账号能连上但没有写入/删除权限”的配置问题。401 仍会转换为WarpTokenError,其他失败会保留为WebDAV verify failed: ...。