上传和下载文件
AICoder 支持通过跳板机(ssh-jumper.cloud.infini-ai.com
)使用 scp
/ sftp
/ rsync
上传和下载文件。下面将简要介绍如何使用这些工具进行文件传输。
TIP
我们推荐通过 AICoder 与共享高性能存储进行文件传输。共享高性能存储默认挂载在 /mnt/public
下。
前提条件
- 您已经成功创建并启动了 AICoder 实例。
- 您已经成功在 AICoder 实例中上传了您的 SSH 公钥。
本地如何访问 AICoder 实例
NOTE
安全起见,AICoder 不会直接向公网暴露访问地址。我们设计了一种 SSH 跳转的解决方案,帮助您顺利连接到我们平台上的 AICoder 实例。
登录智算云平台,获取 AICoder 实例的 SSH 地址。打开 AICoder Shell 后,在窗口右上角点击密钥按钮,点击后出现如下弹窗:
AICoder 实例的 SSH 连接命令格式如下:
ssh -J ssh-jumper.cloud.infini-ai.com username@aicoder_id
例如,用户 Jane Doe 的 SSH 连接命令为:
ssh -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b
root
为默认 SSH 登录用户名(部分旧版实例展示为非 root 普通用户名,请重启)。aic-c8lkg5b88mieqw6b
是 AICoder 实例的 ID。请记录您的用户名与实例 ID(username@aicoder_id
),在后续的文件传输过程中,我们会使用该字符串代表需要连接的 AICoder 实例。
TIP
- 即使您重置、重启 AICoder 实例,实例 ID 仍保持不变,因此您无需担心连接地址变更。
- 但是,如果您在不同可用区打开 AICoder,您会注意到 AICoder 实例的 ID 并不相同。一般情况下,租户的资源池均在同一个可用区。
使用 sftp
上传和下载文件
通过跳板机建立 sftp
连接的命令格式如下:
新手提示
上传、下载操作均需要在本地计算机运行命令(scp
/sftp
),不需要在开发机上运行命令。
sftp -J ssh-jumper.cloud.infini-ai.com username@aicoder_id
例如,用户 Jane Doe 与 AICoder 平台建立 SFTP 连接:
sftp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b
进入 SFTP 界面后,使用 put
上传文件:
sftp> put localfile remotefile
例如,从本地上传文件到 AICoder:
sftp> put /Users/janedoe/Desktop/v2.png /home/jane/
使用 get
下载文件:
sftp> get remotefile localfile
例如,从 AICoder 下载文件到本地:
sftp> get /home/jane/v2.png /Users/janedoe/Desktop
使用 sftp
上传和下载文件夹
SFTP 支持直接传输整个文件夹。以下是两种常用方法:
新手提示
上传、下载操作均需要在本地计算机运行命令(scp
/sftp
),不需要在开发机上运行命令。
方法一:使用 -r
选项
这是最直接的方法,可以递归地上传或下载文件夹及其内容。
上传文件夹(格式):
sftp> put -r localdir /remote/path
效果:
/remote/path/
└── localdir/
├── file1.txt
└── file2.txt
例如,用户 Jane Doe 需要将本地目录 /Users/janedoe/work/public/elements
上传到 AICoder 上的 /home/janedoe
路径下:
sftp> lpwd
Local working directory: /Users/janedoe/work
sftp> put -r ./docs/public/elements /home/janedoe
Uploading ./docs/public/elements/ to /home/janedoe/elements
Entering ./docs/public/elements/
web-components.min.css 100% 289KB 20.1MB/s 00:00
web-components.min.js 100% 2152KB 20.5MB/s 00:00
api-reference.css 100% 9840 1.9MB/s 00:00
sftp> ls /home/janedoe
/home/janedoe/elements
sftp>
下载文件夹:
sftp> get -r remotefolder localfolder
例如,用户 Jane Doe 需要将 AICoder 上的 /home/janedoe/myfolder
下载到本地目录 /Users/janedoe/Desktop/
下。
sftp> get -r /home/janedoe/myfolder /Users/janedoe/Desktop/myfolder
NOTE
使用 -r
选项时要小心,它会覆盖目标位置的现有文件。
方法二:使用多个命令
对于那些更熟悉单独的 SFTP 命令的用户,可以使用以下步骤:
上传文件夹:
sftp> mkdir remotefolder
sftp> lcd localfolder
sftp> cd remotefolder
sftp> mput *
下载文件夹:
sftp> lcd localfolder
sftp> cd remotefolder
sftp> mget *
NOTE
mput
和 mget
命令支持通配符,可以用来传输多个文件。
两种方法都可以在 SFTP 交互式 shell 中直接使用,无需在建立连接时指定特殊选项。选择哪种方法取决于个人偏好和具体需求。
使用 scp
上传文件
通过跳板机上传文件到 AICoder 的命令格式如下:
新手提示
上传、下载操作均需要在本地计算机运行命令(scp
/sftp
),不需要在开发机上运行命令。
scp -J ssh-jumper.cloud.infini-ai.com localfile username@aicoder_id:/remotefile
例如,用户 Jane Doe 将本地文件上传到 AICoder 的目录 /home/jane
:
scp -J ssh-jumper.cloud.infini-ai.com ~/Desktop/v2.jpg root@aic-c8lkg5b88mieqw6b:/home/jane
使用 scp
下载文件
通过跳板机从 AICoder 下载文件到本地的命令格式如下:
新手提示
上传、下载操作均需要在本地计算机运行命令(scp
/sftp
),不需要在开发机上运行命令。
scp -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefile localfile
例如,用户 Jane Doe 将 AICoder 上的文件下载到本地目录 /Users/janedoe/Desktop
:
scp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/jane/v2.jpg /Users/janedoe/Desktop
使用 scp
上传和下载文件夹
新手提示
上传、下载操作均需要在本地计算机运行命令(scp
/sftp
),不需要在开发机上运行命令。
上传文件夹到 AICoder:
scp -r -J ssh-jumper.cloud.infini-ai.com localfolder username@aicoder_id:/remotefolder
例如,用户 Jane Doe 将本地文件夹上传到 AICoder 的目录 /home/jane
:
scp -r -J ssh-jumper.cloud.infini-ai.com ~/Desktop/myfolder root@aic-c8lkg5b88mieqw6b:/home/jane
下载文件夹到本地:
scp -r -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefolder localfolder
例如,用户 Jane Doe 将 AICoder 上的文件夹下载到本地目录 /Users/janedoe/Desktop
:
scp -r -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/jane/myfolder /Users/janedoe/Desktop
NOTE
使用 -r
选项递归地复制整个文件夹。
传输大文件
在传输大文件时,可以使用以下方法确保传输过程不会因网络中断或退出 shell 而中断。
NOTE
在传输大文件前,请确保使用正确的 aicoder_id
。在租户在多个可用区均有资源池的情况下,一个用户可能有多个 AICoder 实例。
使用 rsync 传输大文件
在向智算云平台传输数据时,scp
/ sftp
是常用的命令行工具。但是如果对断点续传有比较高的要求,rsync
可能是更好的选择。一个典型场景是文件夹包含大量小文件和几个大文件,并且网络带宽有限,那么 rsync
的增量传输和断点续传功能能够有效地减少带宽使用和传输时间。
首先,AICoder 中已内置 rsync,无需自行安装。
其次,AICoder 已直接提供一键复制可 rsync 上传命令。您只需要在复制后编辑命令,指定相应文件路径(获取方式见本地如何访问 AICoder 实例):
完整的 rsync
命令示例如下:
rsync -avzP --partial-dir=.rsync-partial -e "ssh -J ssh-jumper.cloud.infini-ai.com" dummyfile root@aic-c7vyfhj5usmnsows:/mnt/public
该命令会将当前目录下的 dummyfile 传输到 AICoder aic-c7vyfhj5usmnsows
挂载的高性能存储 /mnt/public
目录下,并同时启用了传输进度展示、压缩、和断点续传能力。
如果要传输整个目录:
rsync -avzP --partial-dir=.rsync-partial -e "ssh -J ssh-jumper.cloud.infini-ai.com" /path/to/local/directory root@aic-c7vyfhj5usmnsows:/mnt/public
使用 tmux
tmux
是个强大的终端复用器,可以保持会话在后台运行,即使连接断开也不会中断传输任务。
启动一个新的
tmux
会话:shelltmux
在
tmux
会话中执行scp
命令:shellscp -J ssh-jumper.cloud.infini-ai.com localfile username@aicoder_id:/remotefile
按
Ctrl+B
然后按D
将会话分离。要重新连接到
tmux
会话:shelltmux attach-session
NOTE
tmux
或 screen
是传输大文件时的理想辅助工具。关于 tmux 等后台运行工具的详细介绍,可参考教程可参考教程 Linux 后台运行入门指南:掌握 nohup、tmux 和 screen。
使用 nohup
和 &
使用 nohup
命令可以在退出 shell 后继续运行任务。将命令放在后台运行可以使用 &
。
上传大文件
nohup scp -J ssh-jumper.cloud.infini-ai.com localfile username@aicoder_id:/remotefile &
例如,用户 Jane Doe 将本地大文件上传到 AICoder 的目录 /home/jane
:
nohup scp -J ssh-jumper.cloud.infini-ai.com ~/Desktop/largefile.iso root@aic-c8lkg5b88mieqw6b:/home/jane &
下载大文件
nohup scp -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefile localfile &
例如,用户 Jane Doe 将 AICoder 上的大文件下载到本地目录 /Users/janedoe/Desktop
:
nohup scp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/jane/largefile.iso /Users/janedoe/Desktop &
工具对比
选择合适的工具取决于具体需求:
特性 | scp | sftp | rsync |
---|---|---|---|
适用场景 | 快速单次文件/文件夹传输 | 频繁文件操作/管理 | 备份、同步,增量传输 |
命令结构 | 简单直接 | 稍复杂 | 灵活,选项丰富 |
交互性 | 非交互式 | 交互式 shell | 非交互式,但可通过选项实现复杂操作 |
文件管理 | 不提供 | 提供,支持导航 | 不提供文件管理,专注于同步 |
文件夹复制 | 支持递归复制(-r 选项) | 支持 | 内置支持递归,高效 |
文件传输 | 适合大文件传输 | 适合小文件/文件夹传输 | 适合大文件和增量传输,断点续传 |
文件操作 | 无 | 支持部分文件传输命令(put 、get 、mput 、mget ) | 支持更多同步选项,如删除、权限保持等 |
优点 | 简单命令,递归复制,适合大文件传输 | 交互式管理,部分文件命令,适合小文件/文件夹传输 | 增量传输,效率高,功能强大,灵活 |
缺点 | 不适用于交互式文件管理 | 更多命令需学习,大文件传输效率或不如scp | 选项较多,学习曲线稍陡峭 |
效率 | 简单快速,单次大文件传输 | 交互操作更方便,但原始传输速度或较低 | 增量传输大幅提高效率,尤其在同步场景下 |
TIP
如果您只是需要快速地上传或下载文件夹,使用 scp
会更方便。如果您需要频繁地管理和传输文件,sftp
会更适合您的需求。