Update AGENTS.md: Phase 21-22 WebDAV + MyFiles + VirtualFs
This commit is contained in:
90
AGENTS.md
90
AGENTS.md
@@ -4433,3 +4433,93 @@ let response = namespace.build_referral_response("\\server\\dfs\\path");
|
||||
**结论**:Phase 7 (CTDB 集群) 复杂度高(⚠️⚠️⚠️⚠️⚠️),建议根据实际需求决定是否实施。
|
||||
|
||||
---
|
||||
|
||||
**最后更新**:2026-06-22
|
||||
**版本**:1.60(MyFiles + VirtualFs + WebDAV Phase 21-22 完成)
|
||||
|
||||
## WebDAV Phase 21-22 + MyFiles + VirtualFs 完成(2026-06-22)⭐⭐⭐⭐⭐
|
||||
|
||||
**完成时间**:约 4 小时(跨 session)
|
||||
**新增代码量**:~1603 行
|
||||
**Git commits**:14ed3d5, 6064991
|
||||
|
||||
### Phase 21:WebDAV 改进 ⭐⭐⭐⭐⭐
|
||||
|
||||
| 功能 | 状态 |
|
||||
|------|------|
|
||||
| VfsDavFile flush 四阶段(storage → version → clear → hook) | ✅ 完成 |
|
||||
| write_buf/write_bytes 缓冲 | ✅ 完成 |
|
||||
| PersistedLs 锁持久化(.webdav_locks/<user>.json) | ✅ 完成 |
|
||||
| Version index 持久化 | ✅ 完成 |
|
||||
| Dead props 持久化(.webdav_props.json) | ✅ 完成 |
|
||||
| Quota property | ✅ 完成 |
|
||||
| 6 个 integration tests | ✅ 完成 |
|
||||
|
||||
### Phase 22:WebDAV 全面改进 ⭐⭐⭐⭐⭐
|
||||
|
||||
| 功能 | 状态 |
|
||||
|------|------|
|
||||
| flush fail 修复 + Drop warning | ✅ 完成 |
|
||||
| RwLock 中毒 recovery(try_read/try_write) | ✅ 完成 |
|
||||
| 过期锁清理(cleanup_expired_locks) | ✅ 完成 |
|
||||
| Mutex/RwLock recovery helpers | ✅ 完成 |
|
||||
| Props VFS 持久化(load_props/save_props via VFS) | ✅ 完成 |
|
||||
| COPY/MOVE dead props sync | ✅ 完成 |
|
||||
| 原子 set_times(set_atime/set_mtime) | ✅ 完成 |
|
||||
| Async props(spawn_blocking) | ✅ 完成 |
|
||||
| DavHandler caching(CachedHandler, 300s TTL) | ✅ 完成 |
|
||||
| MKCOL 405 fix(exists() check) | ✅ 完成 |
|
||||
| Quota enforcement | ✅ 完成 |
|
||||
| Conditional/Range requests(dav-server 内建) | ✅ 验证 |
|
||||
|
||||
### WebDAV Auth 整合 ⭐⭐⭐⭐⭐
|
||||
|
||||
| 功能 | 状态 |
|
||||
|------|------|
|
||||
| Basic Auth via `MB_WEBDAV_USERS` env(默认 demo:demo123) | ✅ 完成 |
|
||||
| Admin WebDAV `/admin-webdav`(MB_WEBDAV_ADMIN_USERS) | ✅ 完成 |
|
||||
| DavHandler cache 5min TTL | ✅ 完成 |
|
||||
| Extension layer order 修复(7 commits) | ✅ 完成 |
|
||||
|
||||
### MyFiles UI ⭐⭐⭐⭐⭐
|
||||
|
||||
| 功能 | 端點 | 狀態 |
|
||||
|------|------|------|
|
||||
| UI 頁面 | `/myfiles` | ✅ 完成 |
|
||||
| 虛擬文件夾列表 | `GET /api/v2/myfiles/:user/folders` | ✅ 完成 |
|
||||
| 創建文件夾 | `POST /api/v2/myfiles/:user/folders` | ✅ 完成 |
|
||||
| 刪除文件夾 | `DELETE /api/v2/myfiles/:user/folders/:name` | ✅ 完成 |
|
||||
| 文件列表 | `GET /api/v2/myfiles/:user/files` | ✅ 完成 |
|
||||
| 新增標籤 | `POST /api/v2/myfiles/:user/tags` | ✅ 完成 |
|
||||
| 移除標籤 | `DELETE /api/v2/myfiles/:user/tags` | ✅ 完成 |
|
||||
| 文件標籤查詢 | `GET /api/v2/myfiles/:user/files/:name/tags` | ✅ 完成 |
|
||||
|
||||
### VirtualFs VFS 後端 ⭐⭐⭐⭐⭐
|
||||
|
||||
| 功能 | 狀態 |
|
||||
|------|------|
|
||||
| VfsBackend trait 完整實作 | ✅ 完成 |
|
||||
| SQLite schema(virtual_folders + file_tags + webdav_config) | ✅ 完成 |
|
||||
| create_dir / remove_dir(虛擬文件夾操作) | ✅ 完成 |
|
||||
| read_dir(混合顯示實體檔案 + 虛擬文件夾) | ✅ 完成 |
|
||||
| open_file(自動 tag) | ✅ 完成 |
|
||||
| rename(跨文件夾移動自動更新 tag) | ✅ 完成 |
|
||||
| 21 個單元測試 | ✅ 完成 |
|
||||
| CLI 子命令(webdav-folder, webdav-tag, webdav-list) | ✅ 完成 |
|
||||
|
||||
### 测试结果 ⭐⭐⭐⭐⭐
|
||||
|
||||
```bash
|
||||
cargo test -p markbase-core --lib # 320 passed, 0 failed, 12 ignored (PG)
|
||||
```
|
||||
|
||||
### Git 提交记录
|
||||
|
||||
**Commit 14ed3d5**: Add MyFiles UI, VirtualFs backend, WebDAV virtual mode, admin WebDAV
|
||||
- 9 files, 1603 insertions, 56 deletions
|
||||
- New: myfiles.rs (533行), virtual_fs.rs (737行)
|
||||
|
||||
**Commit 6064991**: Fix cargo warnings: remove unused imports, mark unused variables, fix smb-server profiles
|
||||
- 5 files, 10 insertions, 16 deletions
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user