Repository navigation
inkScroll 0.3.4
inkScroll 0.3.4
让 NAS 功能真正可用的最后一个 bug 修掉了。
症状
0.3.3 修好联网权限后,连接能到达 NAS,但列目录依然失败。
根因:飞牛 fnOS 拒绝带请求体的 PROPFIND
用 curl 逐项对比才发现:
| 请求 | 结果 |
|---|---|
PROPFIND 不带请求体 |
207 + 完整文件列表 ✅ |
PROPFIND 带 XML 请求体 |
400 Bad Request ❌ |
而"标准写法"正是发 <propfind><prop>...</prop></propfind> ——
也就是说任何标准 WebDAV 客户端在飞牛上都列不出目录。
400 这个错误码极具误导性:看起来像"请求格式错",实际极易被误判成
地址写错、权限不足、端口不对。这个坑绕了很久。
修复
RFC 4918 §9.1 规定:PROPFIND 不带请求体等价于 allprop,是合法的。
所以改成默认发空体,仅当服务器明确回 400/415 时才回退到带体写法,
兼容那些反过来要求必须带体的严格实现。
端到端验证(真机 + 公网隧道,非局域网)
用 chmlfrp 隧道 https://8.162.5.68:64815 连家里的 NAS:
| 步骤 | 结果 |
|---|---|
| 列根目录 | 207,正确列出 /111/ |
| 图片尺寸嗅探(Range) | 2559×1439 |
| 下载整张 4.7MB 图片 | 271ms(约 17 MB/s) |
| App 内导入为在线库 | 成功,显示「111 / 1 页」 |
| 打开阅读 | 图片正常渲染 |
至此「不在家也能看 NAS 漫画、且不装额外软件」的完整链路跑通。
飞牛用户配置要点
- 别用管理员账号 —— fnOS 的 WebDAV 对管理员返回 401(认证阶段就拒绝),
请单独建一个普通账号 - 该账号需要有可见文件夹,否则根目录返回 404(不是权限错误,是没内容可映射)
- 远程访问推荐 chmlfrp / frp 之类的 TCP 隧道:
- 端口类型选 TCP(不是 HTTP/HTTPS),这样 TLS 端到端保留
- 本地端口填 5006(WebDAV HTTPS),不是 5666(网页端口)
- 数据加密/压缩都关掉(TLS 已经加密;JPEG 压不动)
- 双层 NAT / 运营商 CGNAT 都不用管,隧道直接绕过
下载
| 架构 | 适用机型 |
|---|---|
inkscroll-0.3.4-arm64-v8a.apk |
绝大多数现代手机(推荐) |
inkscroll-0.3.4-armeabi-v7a.apk |
较老的 32 位设备 |
inkscroll-0.3.4-x86_64.apk |
模拟器 |
若装过旧版本,可能因签名不同无法覆盖安装,请先卸载。
Full Changelog: v0.3.3...v0.3.4