985 B
985 B
跨服务器直传:目标机写入提权
日期:2026-06-21
摘要
直传(relay)在目标机写入时改用 remote_write_bytes(SFTP 失败自动 sudo tee),与文件上传一致;修复目标目录无写权限时 500 且前端仅显示「操作失败」。
动机
生产日志:asyncssh.sftp.SFTPPermissionDenied 于 dst_sftp.open(..., "wb");宝塔子机常见 www 目录需 sudo 写入。
涉及文件
| 路径 | 说明 |
|---|---|
server/application/services/server_file_transfer_service.py |
relay 写入/建目录提权 |
server/api/sync_v2.py |
relay 未捕获异常 → 502 + detail |
frontend/src/composables/useServerFileTransfer.ts |
formatApiError 展示后端 detail |
验证
pytest tests/test_server_file_transfer.py -q
传输页直传至 B 机 target_path 下目录;失败时应显示具体原因而非「操作失败」。
回滚
恢复裸 SFTP dst_sftp.open 并重启 API。