|
1 | 1 | 进行中: |
| 2 | + ☐ Fix MemoryProvider with macOS finder(create new file) |
| 3 | + ☐ Test big(1GB+) file in MemoryProvider |
2 | 4 | ☐ 配置文件现代化 |
3 | 5 | 保存对 JSON 格式的支持 |
4 | 6 | TOML 作为配置文件的第一格式 |
5 | 7 | ✔ pydantic => dataclass @done |
6 | 8 | ✔ 添加 TOML 支持 @done |
7 | 9 | ✔ docker 环境支持自动尝试多种配置文件后缀 @done(25-10-31) |
8 | 10 | ✔ 默认配置文件改为 webdav.toml @done(25-10-31) |
9 | | - ☐ 自动尝试多种配置文件后缀这个行为通过命令行打开,默认不开启 |
| 11 | + ✔ 自动尝试多种配置文件后缀这个行为通过命令行打开 @done(25-12-20) |
| 12 | + ☐ 梳理 Config 对象的使用(目的:清理代码) @wip |
10 | 13 | ☐ 通过配置文件实现 dev 模式的切换 |
11 | 14 | ☐ 通过配置文件实现 litmus 模式的切换 @wip |
12 | 15 | ☐ 更新文档 @wip |
13 | 16 | ☐ 使用 TOML 方便添加注释的特性, 增加各种使用场景配置范例 @long-term |
14 | 17 | ☐ 以 TOML 下的可读性为标准,适当调整配置文件结构 @long-term |
15 | | - ☐ 重构 DAVResponse |
16 | | - ☐ 统一 401 的响应行为 @high @next-release |
17 | | - ☐ 浏览器请求才弹认证请求框, 服务器返回 401 时不弹认证框 |
| 18 | + ☐ 重构 DAVResponse @wip |
| 19 | + ✔ 统一 401 的响应行为 @high @next-release @done(25-12-21) |
| 20 | + ✔ 浏览器请求才弹认证请求框, 服务器返回 401 时不弹认证框 @done(25-12-22) |
18 | 21 | ☐ 重构部分 DAVResponse 代码, 这个与压缩依赖部分一起修改 |
19 | | - ☐ 顺带解决 litmus 的一个告警? |
20 | 22 | ✔ 移除 brotli 压缩方法 @done(25-11-14) |
21 | 23 | ✔ 添加sztd支持 @done(25-11-14) |
| 24 | + ✔ example 子项目代码更新 @high @done(25-12-28) |
| 25 | + ✔ 测试覆盖 @done(25-12-28) |
| 26 | + ☐ HTTP 范围支持 |
| 27 | + ✔ 断点续传支持开始和结尾,而不是只支持开始 @done(25-12-28) |
| 28 | + - https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests |
| 29 | + - https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Guides/Range_requests |
| 30 | + ✔ - file_system._dav_response_body_generator() 更好的支持异步, block_size @done(25-12-26) |
| 31 | + ✔ 请求头 Range 的完整解析 @done(25-12-26) |
| 32 | + - https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Range |
| 33 | + ✔ 请求头 If-Range 支持(断点续传需要) @done(25-12-27) |
| 34 | + - https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Reference/Headers/If-Range |
| 35 | + ✔ 响应头 Accept-Ranges 梳理 @done(25-12-27) |
| 36 | + - https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Reference/Headers/Accept-Ranges |
| 37 | + ✔ 重构到一处生成 @done(25-12-27) |
| 38 | + ✔ GET @done(25-12-27) |
| 39 | + ✔ HEAD @done(25-12-27) |
| 40 | + ✔ 响应头 Content-Range 梳理 @done(25-12-27) |
| 41 | + - https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Range |
| 42 | + ✔ 状态码支持 @done(25-12-27) |
| 43 | + ✔ 206 Partial Content @done(25-12-27) |
| 44 | + ✔ 416 Range Not Satisfiable @done(25-12-27) |
| 45 | + ☐ 支持 multi-range |
| 46 | + ✔ DAVTime 的 Web 时间格式时区应该是 GMT @high @done(25-12-29) |
| 47 | + https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Reference/Headers/Last-Modified |
| 48 | + https://datatracker.ietf.org/doc/html/rfc9110.html#field.last-modified |
| 49 | + HTTP-date |
| 50 | + RFC 1123 |
| 51 | + https://datatracker.ietf.org/doc/html/rfc822#section-5 |
| 52 | + ✔ DAVPath 测试覆盖 @high @done(25-12-29) |
| 53 | + ☐ 重构Lock 实现 |
| 54 | + ✔ 消除 mypy 告警 @high @done(26-01-07) |
| 55 | + ✔ 状态码 423 Locked 支持 @done(26-01-06) |
| 56 | + https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/423 |
| 57 | + ✔ 完善 litmus 测试 @done(26-01-06) |
| 58 | + LOCK on unmapped url returned 200 not 201 (RFC4918:S7.3) |
| 59 | + ✔ 创建锁时, 支持 Depth.INFINITY 检查 @done(26-01-14) |
| 60 | + ✔ 性能优化检查 @done(26-01-17) |
| 61 | + ☐ 支持 multi-token |
| 62 | + - create_propfind_response() |
| 63 | + ☐ 梳理 propfind/proppatch 等 XML 解析和生成代码 @low |
| 64 | + ☐ 将 DAVPropertyBasicData.get_get_head_response_headers() 迁移到 DAVResponse |
| 65 | + ☐ fileball连接会导致500错误 |
| 66 | + 应该是 xml 解析依赖更新导致的问题 |
| 67 | + - 考虑设计一个中间件,方便在docker中可选的拦截请求和响应,以便故障分析 |
| 68 | + ✔ 临时方案 @done(25-12-27) |
| 69 | + ☐ 重构部分 DAVRequest |
| 70 | + ✔ 将部分代码执行后移,提高性能 @done(26-01-07) |
| 71 | + ☐ 更好的支持静态类型检查 |
22 | 72 | ☐ 浏览器后台(内部)界面 @low |
23 | 73 | ☐ info界面 |
24 | 74 | ☐ /_/admin/INDEX |
|
35 | 85 | /_/admin/gpw |
36 | 86 |
|
37 | 87 | 长期性任务: |
38 | | - 整理好后迁移到 github issues |
39 | | - - 更好的类型标注 |
40 | | - 主要解决类型推断问题, 提高对静态类型检查工具的支持 |
41 | | - 终极目标为: 能通过mypy的检查 |
| 88 | + ☐ 更好的类型标注 |
| 89 | + - 主要解决类型推断问题, 提高对静态类型检查工具的支持 |
42 | 90 | - 在维护代码时顺便解决相关代码出现的类型推断错误 |
43 | | - ☐ 消除 DAVRequest 相关的类型推断错误 |
44 | | - ☐ 消除 DAVResponse 相关的类型推断错误 |
| 91 | + ☐ 终极目标:通过 mypy 检查 |
| 92 | + ✔ 消除 DAVResponse 相关的类型推断错误 @done(25-12-28) |
| 93 | + ✔ 消除 DAVRequest 相关的类型推断错误 @done(26-01-17) |
45 | 94 | - 解耦/分离可作为第三方库的核心代码和实现应用的代码 |
46 | 95 | 降低耦合度, 让其他项目能更便捷的添加 webdav 能力 |
47 | 96 | 终极目标为: 实现将核心代码剥离为一个独立的库 |
|
54 | 103 | ✔ xmltodict v1.0.2 @done(25-12-09) |
55 | 104 |
|
56 | 105 | 待实现: |
| 106 | + ☐ DAVProvider._do_get_etag() 梳理 |
57 | 107 | ☐ 基于配置,检查依赖安装情况,以便在启动时告警 |
58 | | - ☐ 兼容 Py3.14 @block dataclass-wizard 不兼容 py3.14 |
59 | 108 | ☐ 浏览器前台界面 @low |
60 | 109 | ☐ 更干净的目录过滤机制 |
61 | 110 | ☐ 更好看的界面 |
|
85 | 134 | ☐ 文件获取 |
86 | 135 |
|
87 | 136 | 待验证 bug: |
88 | | - ☐ fileball连接会导致500错误 |
89 | | - ☐ 断点续传支持开始和结尾,而不是只支持开始 |
90 | 137 | ☐ 每次切换目录时在递归遍历目录下的所有文件 |
91 | 138 | 0.3.1 以及以前没有这个问题 |
92 | 139 | 当请求者不是浏览器的时候不遍历目录下所有文件 |
|
102 | 149 | ☐ 完善的 LDAP 支持 @high |
103 | 150 | ☐ display server info in page `/_/admin` or `/_/` @high |
104 | 151 | ☐ Fail2ban(docker) @critical |
105 | | - ☐ Fix MemoryProvider with macOS finder(create new file) |
106 | 152 | ☐ NFSProvider |
107 | | - ☐ Test big(1GB+) file in MemoryProvider |
108 | 153 | ☐ SQL database provider |
109 | 154 | ☐ 支持 docker health check @high, 参考 watchtowe |
110 | 155 | ☐ 性能优化 |
|
0 commit comments