Files
Nexus/docs/design/plans/2026-06-21-server-file-transfer.md
2026-07-08 22:31:31 +08:00

1.2 KiB
Raw Permalink Blame History

跨服务器文件传输 — 实施计划

涉及文件

文件 变更
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 变更记录

步骤

  1. Redis store + serviceSFTP 递归中继、远程 tar、目标 curl)
  2. API + 审计
  3. 前端对话框(模式切换、目标服务器、路径、打包后展示链接与一键 pull)
  4. pytest + scripts/local_verify.sh 相关用例

回滚

删除新端点与服务文件;Redis key transfer:pkg:* 自然过期。无需 DB 迁移。

测试要点

  • 校验:同源目标、空 sources、路径非法
  • token 过期 / 不存在 → 404
  • mock SFTP 的 relay 字节计数(可选)