Files
Nexus/docs/changelog/2026-06-01-files-clipboard-transfer.md
T

1.5 KiB
Raw Blame History

文件管理:剪切 / 复制 / 粘贴

日期2026-06-01

摘要

实现 v2 设计中的远程文件剪贴板:POST /api/sync/file-clipboardcp -r / mv -t),前端 Ctrl+C/X/V、工具栏粘贴、右键菜单与状态芯片。

动机

用户要求补齐此前因缺少后端 API 未实现的剪切/复制/粘贴。

涉及文件

  • server/api/schemas.pyFileClipboardApply
  • server/api/remote_path_validation.py(新建)
  • server/api/sync_v2.py/file-clipboard
  • frontend/src/composables/useFilesClipboard.ts(新建)
  • frontend/src/composables/useFilesHotkeys.ts
  • frontend/src/pages/FilesPage.vue
  • tests/test_remote_path_validation.py(新建)
  • docs/design/specs/2026-06-01-files-clipboard-transfer-design.md

安全

  • 绝对路径 + 禁止 ..
  • 禁止粘贴到源目录子路径
  • 审计 file_copy / file_move

迁移 / 重启

需部署后端 + 前端(新 API)。

验证

pytest tests/test_remote_path_validation.py -q

浏览器:复制→进入另一目录→粘贴;剪切→粘贴后源消失;跨服务器粘贴应提示。


2026-06-01 补充:跨目录粘贴

  • 粘贴目标:默认当前目录;单选一个文件夹时粘贴到该文件夹;右键目录「粘贴到 xxx」;目录树右键粘贴到该节点
  • 状态栏显示剪贴板内容与粘贴目标路径
  • 前端 validatePasteTarget 与后端一致,禁止粘贴到源目录内部