AIStudio SSH 公钥管理,一处配置,处处可用AIStudio SSH 公钥管理,一处配置,处处可用 ,只为更佳开发体验如何配置
Skip to content

上传和下载文件

AICoder 是智算云平台上的一个云端辅助开发环境,提供免费的 CPU 实例,专为管理和辅助 AI 工作负载而设计。

AICoder 支持通过跳板机使用 scpsftprsync 在本地与云端实例间传输文件,帮助您管理数据集、代码等资源。本文将介绍如何使用这些工具进行文件和文件夹的上传与下载。

准备工作

  • 您已成功创建并启动 AICoder 实例。
  • 您已将 SSH 公钥添加到 AICoder 实例。详见 SSH 公钥管理

快捷获取文件传输命令

一键复制

登录智算云平台,打开 AICoder Shell,在右上角点击密钥按钮,在弹窗中获取 scp / rsync 等文件传输命令。

alt text

SCP 上传命令格式解析:

shell
scp -J <ssh-jumper> localfile root@<aicoder-id>:/remotefile

Rsync 上传命令格式解析:

shell
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 适合快速传输文件或文件夹,通过跳板机操作如下:

上传文件

shell
scp -J ssh-jumper.cloud.infini-ai.com localfile username@aicoder_id:/remotefile

示例:

shell
scp -J ssh-jumper.cloud.infini-ai.com ~/Desktop/v2.jpg root@aic-c8lkg5b88mieqw6b:/home/jane

下载文件

shell
scp -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefile localfile

示例:

shell
scp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/jane/v2.jpg ~/Desktop

传输文件夹(使用 -r 递归复制):

  • 上传:

    shell
    scp -r -J ssh-jumper.cloud.infini-ai.com ~/Desktop/myfolder root@aic-c8lkg5b88mieqw6b:/home/jane
  • 下载:

    shell
    scp -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 目录下,并同时启用了传输进度展示、压缩、和断点续传能力。

shell
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 是个强大的终端复用器,可以保持会话在后台运行,即使连接断开也不会中断传输任务。

  1. 启动一个新的 tmux 会话:

    shell
    tmux
  2. tmux 会话中执行 scp/rsync 等耗时操作的命令。

  3. Ctrl+B 然后按 D 将会话分离。

  4. 要重新连接到 tmux 会话:

    shell
    tmux ls
    tmux attach-session -t <session-id>

    其中 <session-id> 需要替换为 tmux ls 命令列出的会话 ID。

关于 tmux 等后台运行工具的详细介绍,可参考教程

工具对比

选择合适的工具取决于具体需求:

特性scpsftprsync
适用场景快速单次文件/文件夹传输频繁文件操作/管理备份、同步,增量传输
命令结构简单直接稍复杂灵活,选项丰富
交互性非交互式交互式 shell非交互式,但可通过选项实现复杂操作
文件管理不提供提供,支持导航不提供文件管理,专注于同步
文件夹复制支持递归复制(-r 选项)支持内置支持递归,高效
文件传输适合大文件传输适合小文件/文件夹传输适合大文件增量传输,断点续传
文件操作支持部分文件传输命令(putgetmputmget支持更多同步选项,如删除、权限保持等
优点简单命令,递归复制,适合大文件传输交互式管理,部分文件命令,适合小文件/文件夹传输增量传输,效率高,功能强大,灵活
缺点不适用于交互式文件管理更多命令需学习,大文件传输效率或不如scp选项较多,学习曲线稍陡峭
效率简单快速,单次大文件传输交互操作更方便,但原始传输速度或较低增量传输大幅提高效率,尤其在同步场景下

TIP

单次传输用 scp,频繁操作选 sftp,大文件或同步用 rsync