WebDAV 存放点
WebDAV 是加密对象存放点传输,需要 webdav feature;与 Directory、S3 共用相对对象路径及 cipherfs-store.json 描述文件,不是明文 WebDAV 文件服务。
桌面 App 在 Sync & storage → WebDAV → Add WebDAV store 注册集合,CLI 与原生 API 也支持。Basic 凭据仅经认证的私有归属通道传递并保留在会话,公开 TCP 不接收;密封或退出即清除,重新打开后再提供。使用 HTTPS;只有显式回环 IP 的本机服务允许 HTTP。URL 不接受凭据、查询参数和 fragment,重定向不转发凭据。
同一套不可变存放点契约在两个独立真实服务上运行:
| 服务 | 验证 |
|---|---|
| Apache HTTP Server 2.4.65,mod_dav/mod_dav_fs | 条件创建、描述文件、HEAD/GET/Range、流式传输、Depth1 分页、签名双设备同步、认证与过期,以及归属发布故障测试 |
| WsgiDAV 4.3.5 + Cheroot 10.0.1 | 原样运行同一契约,包含 32 MiB 对象及签名双设备同步 |
两者都使用合成认证用户和自有临时数据。WsgiDAV 依赖固定版本与 PyPI 分发哈希,安装和执行仅在固定测试容器中;完整工作区门槛包含第二种服务。桌面的进程内归属和附着客户端注册另在宿主对真实 Apache 夹具验证。
其他服务必须支持认证 HEAD/GET/PUT/DELETE、集合创建、有界 Depth1 PROPFIND 和原子 If-None-Match: * 创建。发布真实对象前会探测条件创建,覆盖已有探针的服务被拒;对象长度及密文身份独立验证,列举和 ETag 不作为完整性或删除权证明。Range 单独探测,缺少 Range 不意味着可以无界下载。
multistatus 可忽略有界的额外 DAV/厂商属性子树;必需的 DAV 结构、成功属性、准确长度、直接子项范围和响应预算仍严格检查。厂商命名空间的同名字段不能冒充必需 DAV 字段。对象路径使用规范对象字母表,不接收任意明文文件名。
兼容验收仅覆盖表内两个服务,不代表所有云厂商、反向代理或认证方式。Digest、仅 OAuth 的服务、经重定向转发凭据及真实云账号不在这些测试的验收范围;新服务部署前应通过相同的不可变存放点契约。