数据传输 | 大装置帮助中心
跳到主要内容

数据传输

您可通过本地上传、SCP&rsync远程传输、AWS CLI、ADS多种方式在云开发机上传数据

本地上传

1. 本地拖拽上传

本地拖拽上传方式适用于主要的数据存储在本地,且文件数量不多,文件量级不大的情况下。操作步骤:将需要的数据集拖拽至任何一个云开发机的 ide 界面的文件目录下,云开发机将通过网络传输,完成相应的数据集上传。

2. SFTP传输

准备工作 :使⽤ sftp 前需要您在本地提前⽣成 ssh key,并在开发机的 /root/.ssh/authorized_keys ⽂件内配置 ssh 的公钥信息,详情可查看

  1. 通过 FillZilla⽂件传输⼯具,进⾏传输。

    ◦ 本地安装 FillZilla,打开并进⼊ Site Manager

    alt 属性文本

    ◦ 选择【General】配置

    ◦ 在【Protocol】中选择 SFTP 的传输方式

    ◦ 在【Host】中输⼊开发机详情⻚的的 SSH 地址,及 SSH 端⼝

    alt 属性文本

    ◦ 在【Logon Type】中选择【Key file】

    ◦ 在【User】中输⼊开发机的⽤⼾名 root

    ◦ 在【Key file】中输⼊私钥的存储路径,⼀般为默认路径 点击 Connect 后即可在 Local Site 与 Remote Site 中传输⽂件了

    alt 属性文本

    ◦ 您可以选择 Local Site 与 Remote Site 中需要传输⽂件的存储路径,并将所需⽂件/⽂件夹拖拽 ⾄指定⽬录进⾏传输

    alt 属性文本

  2. 您也可以使用如下命令进行 sftp 数据传输

    • 如从服务器下载 README.md 到 /tmp

      sftp> get /root/README.md /tmp
    • 从本地上传 README.md 到服务器

      sftp> put /tmp/README.md /root/

SCP、rsync远程传输

若您的数据集已存储在AI文件存储卷内,您可以使用SCP或rsync命令行工具,进行本地、远程传输文件。

1. SCP传输

SCP基本使用,以下字段请根据实际需求使用调整参数


1) 从本地上传文件到远程服务器:

```
scp -P 开发机端⼝号 my_local_file.zip root@cci-proxy.cn-sh-01.sensecore.cn:开发机内⽬录路径
```

例如:
```
scp -P 22151 /Users/awesomeproduct/readme.md root@cci-proxy.cn-sh-01.sensecore.cn: /mnt/demo
```

2)从远程主机复制文件到本地主机(下载):

```
scp -P 开发机端⼝号 root@cci-proxy.cn-sh-01.sensecore.cn:开发机内⽬录路径
```

3)从本地复制多个文件到远程主机(多个文件使用空格分隔开):

```
scp -P 开发机端⼝号 本地文件地址1 本地文件地址2 root@cci-proxy.cn-sh-01.sensecore.cn:开发机内⽬录路径
```

4)从远程主机复制多个文件到当前目录:

```
scp -P 开发机端⼝号 root@cci-proxy.cn-sh-01.sensecore.cn:/user/home/path/{file1.jpg file2.txt}
```

5、从本地文件复制整个文件夹到远程主机上(需先切换至本地目录下):

```
scp -v -r diff 开发机端⼝号 root@cci-proxy.cn-sh-01.sensecore.cn:开发机内⽬录路径
```

6、从远程主机复制整个文件夹到本地目录下:

```
scp -r 开发机端⼝号 root@cci-proxy.cn-sh-01.sensecore.cn:开发机内⽬录路径
```

7、在两个远程主机之间复制文件:

```
scp -P 开发机端⼝号1 user@x.x.x.x:/user/home/path/file1.txt 开发机端⼝号2 user@y.y.y.y:/user/home/path2
```

2. rsync传输

使用 rsync 传输方式,需要先在操作系统安装 rsync 工具以及完成准备工作。

上传文件命令如下:
```
rsync -a 本地文件地址 root@cci-proxy.cn-sh-01.sensecore.cn:开发机内⽬录路径
```

下载文件命令如下:
```
rsync -a root@cci-proxy.cn-sh-01.sensecore.cn:开发机内⽬录路径
```

使用AWS CLI进行对象存储桶的数据传输

因大装置的对象存储提供标准的s3接口,因此我们可以使用awscli工具来管理、传输aoss内的数据。

  • 下载AWS CLI工具:您可以通过网络下载或者pip install的方式安装该CLI工具 如:

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    unzip awscliv2.zip
    sudo ./aws/install

    pip install awscli
  • 配置AWS CLI工具: 您可以通过以下命令,进入aws cli的配置:

    aws configure

    根据提示依次输入以下信息: AWS Access Key ID: 用户密钥,需查看需要传输的对象存储桶的AKSK; AWS Secret Access Key: 用户密钥,需查看需要传输的对象存储桶的AKSK; Default region name:可省略不填; Default output format:可省略不填;

    完成以上配置后,根目录会产生一个~/.aws文件夹。如需在其他机器进行相同的配置,可直接将~/.aws拷贝至其他机器的根目录中。 我们在使用aws指令时还可以通过添加”--endpoint-url=http://server-ip”参数,以手动地指定endpoint的IP。

    例如 alias aws="aws --endpoint-url=https://aoss.cn-sh-01.sensecoreapi-oss.cn "

    AWS S3 CLI的常见命令包括 列举你所创建的桶

    aws s3 ls

    列举桶内的内容

    aws s3 ls s3://projects

    从桶内下载一个目标

    aws s3 cp s3://mybucket/simplejson-3.3.0.tar.gz simplejson-3.3.0.tar.gz

    从桶内下载一个文件夹

    aws s3 cp s3://bucketname/this_directory ~/this_directory --recursive

    从一个大装置目标的桶内将一个目录的数据同步下来示例:

    aws --endpoint-url=https://aoss.cn-sh-01.sensecoreapi-oss.cn s3 sync s3://awesomesensecore/awesomemodel/train/./log

使用大装置数据同步工具ADS传输

大装置数据同步工具ADS支持本地-大装置存储、大装置不同存储系统之间的数据传输等功能,详情可查看存储数据同步工具 ADS:/docs/cloud-foundation/storage/ads, 我们提供以下两个在开发机内使用ADS传输的案例。

  1. 将数据导入至对象存储

    首先您需要进入密钥管理界面创建AKSK、及在SenseCore对象存储控制台中创建对象存储桶创建对象存储,再执行以下步骤。

    • 下载最新版本的ADS工具包,并添加执行权限
      cd /usr/bin
    wget "https://quark.aoss.cn-sh-01.sensecoreapi-oss.cn/ads-cli/release/latest/ads-cli"
    chmod +x ads-cli
    • 传输数据到SenseCore对象存储
      ads-cli  --https cp <source_dir>  s3://<ak:sk>@<user-test.aoss.cn-sh-01.sensecoreapi-oss.cn/dir_name/>

    说明:

    • <source_dir>:为您需要传输到对象存储的【源文件夹】,该文件夹可以是您本地的文件夹,也可以是其他对象存储地址;

    • < ak:sk >:为AccessKey ID和AccessKey Secret,使用英文冒号拼接而成;

    • <user-test.aoss.cn-sh-01.sensecoreapi-oss.cn/dir_name/>:为对象存储桶地址,您可以在对象存储控制台-存储桶列表-域名信息中查询并复制地址;

    • [--https]:若传输使用公网,您需要加上参数--https。

  1. 将对象存储中的数据转移至文件存储

    您可以通过ads-cli命令行工具,把数据从SenseCore对象存储传输到SenseCore文件存储

    ads-cli cp s3://<ak:sk>@<bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/dir_name/>  </mnt/quarkfs/>

    说明:

    • < as:sk >:为AccessKey ID和AccessKey Secret,使用英文冒号拼接而成;
    • <bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/dir_name/>:为对象存储桶地址,您可以在对象存储控制台-存储桶列表-域名信息中查询并复制。

    当您含有数据的AI文件存储卷并未挂载到云开发机上,或您当前并没有AI文件存储卷时,您可通过新建AI文件存储卷,并新建云开发机实现挂载,并设定目标的存储路径; 当开发机已经创建完成,若想编辑存储卷,可先将开发机状态切换为“停止“,后通过"详情页-基本信息-存储路径",挂载存储卷或进行编辑,来完成基础准备。