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

49 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 文件管理:剪切 / 复制 / 粘贴
**日期**2026-06-01
## 摘要
实现 v2 设计中的远程文件剪贴板:`POST /api/sync/file-clipboard``cp -r` / `mv -t`),前端 Ctrl+C/X/V、工具栏粘贴、右键菜单与状态芯片。
## 动机
用户要求补齐此前因缺少后端 API 未实现的剪切/复制/粘贴。
## 涉及文件
- `server/api/schemas.py``FileClipboardApply`
- `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)。
## 验证
```bash
pytest tests/test_remote_path_validation.py -q
```
浏览器:复制→进入另一目录→粘贴;剪切→粘贴后源消失;跨服务器粘贴应提示。
---
## 2026-06-01 补充:跨目录粘贴
- 粘贴目标:默认当前目录;**单选一个文件夹**时粘贴到该文件夹;**右键目录**「粘贴到 xxx」;**目录树右键**粘贴到该节点
- 状态栏显示剪贴板内容与粘贴目标路径
- 前端 `validatePasteTarget` 与后端一致,禁止粘贴到源目录内部