Files
Nexus/docs/changelog/2026-06-01-posix-path-linux-only.md
T

41 lines
1.5 KiB
Markdown
Raw Normal View History

# Changelog:远程路径统一 POSIX/Linux
| 项 | 内容 |
|----|------|
| 日期 | 2026-06-01 |
| 类型 | 修复 / 架构 |
| 动机 | 在 Windows 开发机上 `os.path.join`/`dirname` 会对 `/www/...` 远程路径产生反斜杠,导致 SSH/SFTP/压缩等失败 |
## 变更摘要
- 全仓库审计报告:`docs/audit/2026-06-01-posix-path-full-audit.md`
- 分批审查记录(7 批):`docs/audit/2026-06-01-posix-path-batch-review.md`
- Cursor 规则:`.cursor/rules/nexus-posix-paths.mdc`
- 新增 `server/utils/posix_paths.py`:远程与 Nexus 主机 Unix 路径的规范化、拼接、zip-slip 校验
- 第二轮:`diagnose`/`verify`/`file-diff` 远程目标路径、`sync_engine_v2` rsync 目标路径
- `remote_path_validation.py` 改为复用上述工具,并导出 `remote_join`
- `asyncssh_pool``servers`workerman 检测)、`sync_v2` 全部远程路径操作改用 POSIX API
- 上传临时目录相关逻辑:字符串操作用 `posix_join`/`posix_basename`,真实 I/O 仍用 `os.path.realpath`Nexus 生产为 Linux
- 新增 `tests/test_posix_paths.py`
## 涉及文件
- `server/utils/posix_paths.py`(新)
- `server/api/remote_path_validation.py`
- `server/infrastructure/ssh/asyncssh_pool.py`
- `server/api/servers.py`
- `server/api/sync_v2.py`
- `tests/test_posix_paths.py`(新)
## 迁移 / 重启
- 需重启 `nexus` 后端;前端无变更
## 验证
```bash
pytest tests/test_posix_paths.py -q
ruff check server/utils/posix_paths.py server/api/sync_v2.py
python -c "import server.main"
```