1.2 KiB
1.2 KiB
跨服务器文件传输 — 实施计划
涉及文件
| 文件 | 变更 |
|---|---|
server/infrastructure/redis/transfer_package_store.py |
新建:打包任务 Redis |
server/application/services/server_file_transfer_service.py |
新建:直传 / 打包 / 拉取 / 流 |
server/api/schemas.py |
请求模型 |
server/api/sync_v2.py |
四个端点 |
server/api/auth_jwt.py |
下载端点 JWT 豁免 |
frontend/src/composables/files/useFilesActions.ts |
对话框逻辑 |
frontend/src/components/files/FilesDialogs.vue |
UI |
frontend/src/components/files/FilesList.vue |
右键菜单 |
tests/test_server_file_transfer.py |
单元测试 |
docs/changelog/2026-06-21-server-file-transfer.md |
变更记录 |
步骤
- Redis store + service(SFTP 递归中继、远程 tar、目标 curl)
- API + 审计
- 前端对话框(模式切换、目标服务器、路径、打包后展示链接与一键 pull)
- pytest +
scripts/local_verify.sh相关用例
回滚
删除新端点与服务文件;Redis key transfer:pkg:* 自然过期。无需 DB 迁移。
测试要点
- 校验:同源目标、空 sources、路径非法
- token 过期 / 不存在 → 404
- mock SFTP 的 relay 字节计数(可选)