上传和下载文件(Windows)
AICoder 支持通过跳板机(ssh-jumper.cloud.infini-ai.com
)使用 scp
和 sftp
上传和下载文件。下面将简要介绍如何在 Windows 上使用这些工具进行文件传输。
TIP
我们推荐通过 AICoder 与共享高性能存储进行文件传输。共享高性能存储默认挂载在 /mnt/public
下。
前提条件
- 您已经成功创建并启动了 AICoder 实例。
- 您已经成功在 AICoder 实例中上传了您的 SSH 公钥。如需帮助,请参考教程添加 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 并不相同。一般情况下,租户的资源池均在同一个可用区。
使用 scp 和 sftp
通过跳板机使用 scp
和 sftp
上传和下载文件的命令格式如下:
新手提示
上传、下载操作均需要在本地计算机运行命令(scp
/sftp
),不需要在开发机上运行命令。
安装 OpenSSH
- 打开 "设置" 应用,进入 "应用" -> "可选功能"。
- 点击 "添加功能" 并选择 "OpenSSH Client" 进行安装。
使用 scp 上传文件
scp -J ssh-jumper.cloud.infini-ai.com localfile username@aicoder_id:/remotefile
例如,用户 Jane Doe 将本地文件上传到 AICoder 的目录 /home/janedoe
:
scp -J ssh-jumper.cloud.infini-ai.com C:\Users\janedoe\Desktop\v2.jpg root@aic-c8lkg5b88mieqw6b:/home/janedoe
使用 scp 下载文件
scp -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefile localfile
例如,用户 Jane Doe 将 AICoder 上的文件下载到本地目录 C:\Users\janedoe\Desktop
:
scp -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/janedoe/v2.jpg C:\Users\janedoe\Desktop
使用 scp 上传文件夹
scp -r -J ssh-jumper.cloud.infini-ai.com localfolder username@aicoder_id:/remotefolder
例如,用户 Jane Doe 将本地文件夹 myfolder
上传到 AICoder 的目录 /home/janedoe
:
scp -r -J ssh-jumper.cloud.infini-ai.com C:\Users\janedoe\Desktop\myfolder root@aic-c8lkg5b88mieqw6b:/home/janedoe
使用 scp 下载文件夹
scp -r -J ssh-jumper.cloud.infini-ai.com username@aicoder_id:/remotefolder localfolder
例如,用户 Jane Doe 将 AICoder 上的文件夹 myfolder
下载到本地目录 C:\Users\janedoe\Desktop
:
scp -r -J ssh-jumper.cloud.infini-ai.com root@aic-c8lkg5b88mieqw6b:/home/janedoe/myfolder C:\Users\janedoe\Desktop
使用 sftp 上传和下载文件
通过跳板机建立 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 C:\Users\janedoe\Desktop\v2.png /home/janedoe/
使用 get
下载文件:
sftp> get remotefile localfile
例如,从 AICoder 下载文件到本地:
sftp> get /home/janedoe/v2.png C:\Users\janedoe\Desktop
使用 sftp 上传和下载文件夹
SFTP 支持直接传输整个文件夹。以下是两种常用方法:
方法一:使用 -r
选项
这是最直接的方法,可以递归地上传或下载文件夹及其内容。
上传文件夹(格式):
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
,通常会自动创建)。
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>
下载文件夹:
sftp> get -r remotefolder localfolder
例如,用户 Jane Doe 需要将 AICoder 上的 /home/janedoe/myfolder
下载到本地目录 C:\Users\janedoe\Desktop\
下。
sftp> get -r /home/janedoe/myfolder C:\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
与 sftp
的对比
选择合适的工具取决于具体需求:
scp
scp
更适合快速、单次的文件或文件夹传输。它的命令简单直接,非常适合需要一次性上传或下载大量数据的用户。
优点:
- 简单的命令结构
- 支持递归复制文件夹(
-r
选项) - 适合大文件传输
缺点:
- 不提供交互式文件管理
sftp
sftp
更适合需要对文件进行频繁操作或管理的用户。它提供了一个交互式 shell,可以方便地在远程和本地之间导航和传输文件。
优点:
- 提供交互式文件管理
- 支持部分文件传输命令(例如
put
、get
、mput
、mget
) - 适合小文件和文件夹的传输
缺点:
- 命令稍复杂
- 对于大文件传输可能不如
scp
高效
TIP
如果您只是需要快速地上传或下载文件夹,使用 scp
会更方便。如果您需要频繁地管理和传输文件,sftp
会更适合您的需求。
如何使用 PSCP 上传和下载文件
由于 PSCP 本身限制,暂不支持通过通过跳板机使用 PSCP 上传和下载文件。