GenStudio 全新上架 ComfyUI 工作流托管服务GenStudio 全新上架 ComfyUI 工作流托管服务 ,已适配主流 ckpt 模型与节点了解更多
Skip to content

上传和下载文件(Windows)

AICoder 支持通过跳板机(ssh-jumper.cloud.infini-ai.com)使用 scpsftp 上传和下载文件。下面将简要介绍如何在 Windows 上使用这些工具进行文件传输。

TIP

我们推荐通过 AICoder 与共享高性能存储进行文件传输。共享高性能存储默认挂载在 /mnt 下。

前提条件

  • 您已经成功创建并启动了 AICoder 实例。
  • 您已经成功在 AICoder 实例中上传了您的 SSH 公钥。如需帮助,请参考教程添加 SSH 公钥指南

本地如何访问 AICoder 实例

NOTE

安全起见,AICoder 不会直接向公网暴露访问地址。我们设计了一种 SSH 跳转的解决方案,帮助您顺利连接到我们平台上的 AICoder 实例。

登录智算云平台,获取 AICoder 实例的 SSH 地址。打开 AICoder Shell 后,在窗口右上角点击密钥按钮,点击后出现如下弹窗:

alt text

AICoder 实例的 SSH 连接命令格式如下:

shell
ssh -J ssh-jumper.cloud.infini-ai.com username@aicoder_id

例如,用户 Jane Doe 的 SSH 连接命令为:

shell
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 并不相同。一般情况下,租户的资源池均在同一个可用区。

使用 scp 和 sftp

通过跳板机使用 scpsftp 上传和下载文件的命令格式如下:

新手提示

上传、下载操作均需要在本地计算机运行命令(scp/sftp),不需要在开发机上运行命令。

安装 OpenSSH

  1. 打开 "设置" 应用,进入 "应用" -> "可选功能"。
  2. 点击 "添加功能" 并选择 "OpenSSH Client" 进行安装。

使用 scp 上传文件

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

例如,用户 Jane Doe 将本地文件上传到 AICoder 的目录 /home/janedoe

shell
scp -J ssh-jumper.cloud.infini-ai.com C:\Users\janedoe\Desktop\v2.jpg root@aic-c8lkg5b88mieqw6b:/home/janedoe

使用 scp 下载文件

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

例如,用户 Jane Doe 将 AICoder 上的文件下载到本地目录 C:\Users\janedoe\Desktop

shell
scp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/janedoe/v2.jpg C:\Users\janedoe\Desktop

使用 scp 上传文件夹

shell
scp -r -J ssh-jumper.cloud.infini-ai.com localfolder username@aicoder_id:/remotefolder

例如,用户 Jane Doe 将本地文件夹 myfolder 上传到 AICoder 的目录 /home/janedoe

shell
scp -r -J ssh-jumper.cloud.infini-ai.com C:\Users\janedoe\Desktop\myfolder root@aic-c8lkg5b88mieqw6b:/home/janedoe

使用 scp 下载文件夹

shell
scp -r -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefolder localfolder

例如,用户 Jane Doe 将 AICoder 上的文件夹 myfolder 下载到本地目录 C:\Users\janedoe\Desktop

shell
scp -r -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/janedoe/myfolder C:\Users\janedoe\Desktop

使用 sftp 上传和下载文件

通过跳板机建立 sftp 连接的命令格式如下:

shell
sftp -J ssh-jumper.cloud.infini-ai.com username@aicoder_id

例如,用户 Jane Doe 与 AICoder 平台建立 SFTP 连接:

shell
sftp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b

进入 SFTP 界面后,使用 put 上传文件:

shell
sftp> put localfile remotefile

例如,从本地上传文件到 AICoder:

shell
sftp> put C:\Users\janedoe\Desktop\v2.png /home/janedoe/

使用 get 下载文件:

shell
sftp> get remotefile localfile

例如,从 AICoder 下载文件到本地:

shell
sftp> get /home/janedoe/v2.png C:\Users\janedoe\Desktop

使用 sftp 上传和下载文件夹

SFTP 支持直接传输整个文件夹。以下是两种常用方法:

方法一:使用 -r 选项

这是最直接的方法,可以递归地上传或下载文件夹及其内容。

上传文件夹(格式):

shell
sftp> put -r localdir /remote/path

效果:

/remote/path/
├── file1.txt
└── file2.txt

简而言之,这个命令会将本地机器上 localdir 目录内的内容,包括所有子目录和文件,复制到远程服务器的 /remote/path 目录下。

例如,用户 Jane Doe 需要将本地目录 C:\Users\janedoe\desktop\fromwin 上传到 AICoder 上的 /home/janedoe 路径下。在 Windows 上,需要手动在远程路径中指定 fromwin,否则会将本地文件直接传送到 home/janedoe 下(如果远程服务器上尚不存在 /home/janedoe/fromwin,通常会自动创建)。

shell
sftp> lpwd
Local working directory: c:\users\janedoe\desktop

sftp> put -r c:\users\janedoe\desktop\fromwin /home/janedoe/fromwin
Uploading c:/users/janedoe/desktop/fromwin/ to /home/janedoe/fromwin/
Entering c:/users/janedoe/desktop/fromwin/
c:/users/janedoe/desktop/fromwin/file1.txt                       100%    0     0.0KB/s   00:00
c:/users/janedoe/desktop/fromwin/file2.txt                       100%    0     0.0KB/s   00:00
c:/users/janedoe/desktop/fromwin/file3.txt                       100%    0     0.0KB/s   00:00
sftp> ls /home/janedoe
/home/janedoe/fromwin

sftp>

下载文件夹:

shell
sftp> get -r remotefolder localfolder

例如,用户 Jane Doe 需要将 AICoder 上的 /home/janedoe/myfolder 下载到本地目录 C:\Users\janedoe\Desktop\ 下。

shell
sftp> get -r /home/janedoe/myfolder C:\Users\janedoe\Desktop\myfolder

NOTE

使用 -r 选项时要小心,它会覆盖目标位置的现有文件。

方法二:使用多个命令

对于那些更熟悉单独的 SFTP 命令的用户,可以使用以下步骤:

上传文件夹:

shell
sftp> mkdir remotefolder
sftp> lcd localfolder
sftp> cd remotefolder
sftp> mput *

下载文件夹:

shell
sftp> lcd localfolder
sftp> cd remotefolder
sftp> mget *

NOTE

mputmget 命令支持通配符,可以用来传输多个文件。

两种方法都可以在 SFTP 交互式 shell 中直接使用,无需在建立连接时指定特殊选项。选择哪种方法取决于个人偏好和具体需求。

常见问题

scpsftp 的对比

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

scp

scp 更适合快速、单次的文件或文件夹传输。它的命令简单直接,非常适合需要一次性上传或下载大量数据的用户。

优点:

  • 简单的命令结构
  • 支持递归复制文件夹(-r 选项)
  • 适合大文件传输

缺点:

  • 不提供交互式文件管理

sftp

sftp 更适合需要对文件进行频繁操作或管理的用户。它提供了一个交互式 shell,可以方便地在远程和本地之间导航和传输文件。

优点:

  • 提供交互式文件管理
  • 支持部分文件传输命令(例如 putgetmputmget
  • 适合小文件和文件夹的传输

缺点:

  • 命令稍复杂
  • 对于大文件传输可能不如 scp 高效

TIP

如果您只是需要快速地上传或下载文件夹,使用 scp 会更方便。如果您需要频繁地管理和传输文件,sftp 会更适合您的需求。

如何使用 PSCP 上传和下载文件

由于 PSCP 本身限制,暂不支持通过通过跳板机使用 PSCP 上传和下载文件。