d93c518a14
Co-authored-by: Cursor <cursoragent@cursor.com>
1.5 KiB
1.5 KiB
文件管理:剪切 / 复制 / 粘贴
日期:2026-06-01
摘要
实现 v2 设计中的远程文件剪贴板:POST /api/sync/file-clipboard(cp -r / mv -t),前端 Ctrl+C/X/V、工具栏粘贴、右键菜单与状态芯片。
动机
用户要求补齐此前因缺少后端 API 未实现的剪切/复制/粘贴。
涉及文件
server/api/schemas.py—FileClipboardApplyserver/api/remote_path_validation.py(新建)server/api/sync_v2.py—/file-clipboardfrontend/src/composables/useFilesClipboard.ts(新建)frontend/src/composables/useFilesHotkeys.tsfrontend/src/pages/FilesPage.vuetests/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与后端一致,禁止粘贴到源目录内部