1.5 KiB
1.5 KiB
跨服务器文件传输 — 审计修复
日期
2026-06-21
摘要
对跨机传输首版做走读审计,修复 deliver 失败资源泄漏、token 残留、前端模式误判与路径记忆混用。
审计发现与处置
| 级别 | 问题 | 处置 |
|---|---|---|
| P1 | deliver 拉取失败后源机 /tmp 归档与 Redis token 未清理 |
失败时 rollback:rm 归档 + delete_package_meta |
| P1 | deliver 成功后 token 仍有效但源归档已删,curl 重放 404 |
成功后 delete_package_meta |
| P2 | 右键「发送到其他服务器」未选中行时,模式推荐误用 selectedFiles |
引入 transferItems,按实际传输项判断 |
| P2 | localStorage 直传目录与打包路径共用 key,切换模式路径错乱 | 按 relay/deliver 分 key |
| P2 | 打包成功立即关对话框,download_url 无法复制 |
投递成功后保留对话框至用户关闭 |
| 已知限制 | 直传多项中途失败无回滚 | v1 接受;UI 已提示大目录用打包 |
| 已知限制 | 归档与直传单文件 500MB 上限 | 与现有 download 一致,未改 |
涉及文件
server/application/services/server_file_transfer_service.pyfrontend/src/composables/files/useFilesActions.tsfrontend/src/components/files/FilesDialogs.vue
验证
.venv/bin/pytest tests/test_server_file_transfer.py -v
共 18 项:schema、JWT 白名单、Redis store、SFTP 大小守卫、deliver 成功/失败回滚/超限、relay 同源拒绝与成功路径、cleanup 命令引用。