上传和下载文件
AICoder 是智算云平台上的一个云端辅助开发环境,提供免费的 CPU 实例,专为管理和辅助 AI 工作负载而设计。
AICoder 支持通过跳板机使用 scp
、sftp
和 rsync
在本地与云端实例间传输文件,帮助您管理数据集、代码等资源。本文将介绍如何使用这些工具进行文件和文件夹的上传与下载。
准备工作
- 您已成功创建并启动 AICoder 实例。
- 您已将 SSH 公钥添加到 AICoder 实例。详见 SSH 公钥管理。
快捷获取文件传输命令
一键复制
登录智算云平台,打开 AICoder Shell,在右上角点击密钥按钮,在弹窗中获取 scp / rsync 等文件传输命令。
SCP 上传命令格式解析:
scp -J <ssh-jumper> localfile root@<aicoder-id>:/remotefile
Rsync 上传命令格式解析:
rsync -av -P --partial-dir=.rsync-part -e "ssh -J <ssh-jumper>" localfile root@<aicoder-id>:/remotefile
<ssh-jumper>
为跳板机地址。请注意替换为平台提供的跳板机地址,需以弹窗中展示的地址为准。root
为默认用户名(旧版实例可能使用其他用户名,请重启实例更新)。<aicoder-id>
为 AICoder 实例 ID(如aic-c8lkg5b88mieqw6b
)。
NOTE
- 建议您直接复制弹窗中拼接好的命令,修改对应源文件和目标文件目录即可开始上传,无需手动拼接上传命令。
- AICoder 实例 ID 在重置或重启后保持不变,但如果更换可用区,则 AICoder 实例不同。
- 新手提示:文件传输命令需在本地计算机运行,而非 AICoder 实例上。
手动拼接命令
您也可以自行自行拼接命令,以下是拼接命令需要的关键字段。
<ssh-jumper>
为跳板机地址。请注意替换为平台提供的跳板机地址,需以弹窗中展示的地址为准。root
为默认用户名(旧版实例可能使用其他用户名,请重启实例更新)。<aicoder-id>
为 AICoder 实例 ID(如aic-c8lkg5b88mieqw6b
)。
使用 scp
传输文件和文件夹
scp
适合快速传输文件或文件夹,通过跳板机操作如下:
上传文件:
scp -J ssh-jumper.cloud.infini-ai.com localfile username@aicoder_id:/remotefile
示例:
scp -J ssh-jumper.cloud.infini-ai.com ~/Desktop/v2.jpg root@aic-c8lkg5b88mieqw6b:/home/jane
下载文件:
scp -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefile localfile
示例:
scp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/jane/v2.jpg ~/Desktop
传输文件夹(使用 -r
递归复制):
上传:
shellscp -r -J ssh-jumper.cloud.infini-ai.com ~/Desktop/myfolder root@aic-c8lkg5b88mieqw6b:/home/jane
下载:
shellscp -r -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/jane/myfolder ~/Desktop
NOTE
-r
选项会覆盖目标位置的同名文件,请谨慎使用。
传输大文件
在传输大文件时,可以使用以下方法确保传输过程不会因网络中断或退出 shell 而中断。
NOTE
在租户在多个可用区均有资源池的情况下,一个用户可能有多个 AICoder 实例。在传输大文件前,请确保使用正确的 aicoder_id
,避免误传。
使用 rsync 传输大文件
在向智算云平台传输数据时,scp
/ sftp
是常用的命令行工具。但是如果对断点续传有比较高的要求,rsync
可能是更好的选择。
- 一个典型场景是文件夹包含大量小文件和几个大文件,并且网络带宽有限,那么
rsync
的增量传输和断点续传功能能够有效地减少带宽使用和传输时间。 - AICoder 中已内置 rsync,无需自行安装。
- AICoder 已直接提供一键复制可 rsync 上传命令。
完整的 rsync
命令示例如下。该命令会将当前本地的 /path/to/local/directory
目录传输到 AICoder aic-c7vyfhj5usmnsows
挂载的高性能存储 /mnt/public
目录下,并同时启用了传输进度展示、压缩、和断点续传能力。
rsync -avzP --partial-dir=.rsync-partial -e "ssh -J <ssh-jumper>" /path/to/local/directory root@<aicoder-id>:/mnt/public
-a
保持文件属性,-v
显示详情,-P
显示进度并支持续传。<ssh-jumper>
为 SSH 跳板机地址。请务必替换为 AICoder Shell 中展示的真实跳板机地址。/path/to/local/directory
为本地目录路径,上传时需替换为直接替换真实目录。<aicoder-id>
为 AICoder ID,例如aic-c7vyfhj5usmnsows
。/mnt/public
为共享高性能存储目录,可替换为实际的目标路径。
使用 tmux
实现后台传输
tmux
是个强大的终端复用器,可以保持会话在后台运行,即使连接断开也不会中断传输任务。
启动一个新的
tmux
会话:shelltmux
在
tmux
会话中执行scp
/rsync
等耗时操作的命令。按
Ctrl+B
然后按D
将会话分离。要重新连接到
tmux
会话:shelltmux ls tmux attach-session -t <session-id>
其中
<session-id>
需要替换为tmux ls
命令列出的会话 ID。
工具对比
选择合适的工具取决于具体需求:
特性 | scp | sftp | rsync |
---|---|---|---|
适用场景 | 快速单次文件/文件夹传输 | 频繁文件操作/管理 | 备份、同步,增量传输 |
命令结构 | 简单直接 | 稍复杂 | 灵活,选项丰富 |
交互性 | 非交互式 | 交互式 shell | 非交互式,但可通过选项实现复杂操作 |
文件管理 | 不提供 | 提供,支持导航 | 不提供文件管理,专注于同步 |
文件夹复制 | 支持递归复制(-r 选项) | 支持 | 内置支持递归,高效 |
文件传输 | 适合大文件传输 | 适合小文件/文件夹传输 | 适合大文件和增量传输,断点续传 |
文件操作 | 无 | 支持部分文件传输命令(put 、get 、mput 、mget ) | 支持更多同步选项,如删除、权限保持等 |
优点 | 简单命令,递归复制,适合大文件传输 | 交互式管理,部分文件命令,适合小文件/文件夹传输 | 增量传输,效率高,功能强大,灵活 |
缺点 | 不适用于交互式文件管理 | 更多命令需学习,大文件传输效率或不如scp | 选项较多,学习曲线稍陡峭 |
效率 | 简单快速,单次大文件传输 | 交互操作更方便,但原始传输速度或较低 | 增量传输大幅提高效率,尤其在同步场景下 |
TIP
单次传输用 scp
,频繁操作选 sftp
,大文件或同步用 rsync
。