全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

上传文件

最近更新时间:2025-09-05 22:14:38

一、概述

为了方便用户上传文件到文件共享服务实例,或者从文件共享服务实例下载文件,我们设计了SFTP服务。通过SFTP服务,我们可以从windows系统、Linux系统、MacOS系统上传或下载文件,同时有丰富的上传工具可以使用,包括命令行工具和可视化的图形界面客户端。

二、收费说明

SFTP 服务本身不收取费用,使用 SFTP 服务进行数据传输时,上传免费,下载会产生流量费用,详细收费标准,请参照实际账单。

三、使用限制

  • SFTP服务带宽限制为400Mbps

  • 上传文件功能目前仅支持经典网络的文件共享服务实例

四、启动服务

  1. 进入边缘节点计算文件共享服务控制台

  2. 找到目标实例,点击列表操作列【上传文件】按钮。

  3. 点击【启动服务】文字链(未启动状态可见)

  4. 根据弹窗内容进行配置,点击【确认】启动服务。

配置项说明如下:

配置项

说明

登录方式

支持密钥和密码,推荐使用密钥。

密钥可通过 cat ~/.ssh/id_rsa.pub 命令获取公钥信息

密码的复杂度要求:大写、小写、数字、特殊字符占三种,长度为8-32位;特殊字符为!@#$%^&*()_+-=

用户名

root

公钥

可通过“cat ~/.ssh/id_rsa.pub”命令获取公钥信息

使用时长

可选1小时、12小时、1天、3天、7天

五、关闭服务

为了数据安全起见,SFTP服务开启后长时间不用,可关闭SFTP。

  1. 进入边缘节点计算文件共享服务控制台

  2. 找到目标实例,点击列表操作列【上传文件】按钮。

  3. 点击【关闭服务】文字链(运行中状态可见)

  4. 确认弹窗信息,点击【确认】按钮关闭服务。

六、常用SFTP使用方式介绍

1.SFTP介绍

SFTP是SSH协议的子协议,由于SSH的普适性,SFTP是文件传输领域事实上的标准之一。SFTP久经考验,功能强大。其被预装或原生支持Linux、Windows、MacOS等多种平台,并能提供命令行、可交互界面、GUI等多种交互形态。用户可以轻松获取SFTP客户端,以满足用户绝大多数场景下对文件的管理、传输等需要。

下述内容提供了在多个场景使用不同工具的示例,包含:

◦ 基于sftp命令的原生交互式的演示

◦ 基于scp命令的一键式命令行的演示

◦ 基于rclone工具的高级命令行传输方式的演示

◦ 基于filezilla图形化界面的文件管理及传输演示

每种工具的优缺点如下,可按实际需求选用传输工具:

工具

传输效率

优点

缺点

sftp

中等

跨平台兼容性高

交互式操作

大文件效率低

无增量同步

无断点续传

curl

中等

跨平台兼容性高

不支持目录上传

scp

较快

命令极简:单命令完成传输

开箱即用(无需额外配置)

无文件管理

无断点续传

rclone

高效

断点续传

增量同步

加密传输

需掌握 cli 命令

filezilla

中等

图形化界面

断点续传

目录同步

不适合自动化脚本

2.基于sftp命令的原生交互的演示

sftp命令是各Linux系统原生自带的命令,可以支持交互式的远程文件管理、传输。

连接服务器,在当前终端上输入以下命令进行连接

sftp [选项] [用户名@]主机名[:路径]

示例:

例如使用user连接公网1.2.3.4的文件共享服务时,可以用以下命令:

sftp user@1.2.3.4  # 使用默认端口22

连接成功后,进入交互界面,例如:

localhost ~ % sftp user@1.2.3.4
user@1.2.3.4's password:
Connected to 1.2.3.4
sftp>

使用SFTP连接时指定端口

如果您修改了SFTP服务端口,在连接共享文件系统时可以通过-P参数指定SFTP服务端口,命令如下:

sftp -P 2222 user@1.2.3.4 # 指定端口2222

使用SFTP连接共享文件系统时指定私钥文件(密钥对认证)

如果您为共享文件系统绑定了密钥对,sftp将在当前的home目录下自动匹配相应私钥,也可在连接共享文件系统时通过-oIdentityfile参数指定私钥文件,命令如下:

sftp -oIdentityFile=<私钥文件路径> <用户名>@<主机名>

私钥须妥善保管避免泄露

上传文件

从本地上传文件或整个目录到共享文件系统:

#上传单个文件
sftp> put <本地文件> <共享文件系统目录>
#上传整个目录
sftp> put -r <本地文件> <共享文件系统目录>

下载文件

从共享文件系统下载文件或整个目录到本地:

#下载单个文件
sftp> get <共享文件系统文件> <本地目录>
#下载整个目录
sftp> get -r <共享文件系统文件> <本地目录>

示例:

将本机/opt/testfile.txt文件上传至共享文件系统的/home/kenc-user/目录下:

sftp> put /opt/testfile.txt /home/kenc-user
Uploading /opt/testfile.txt to /home/kenc-user/testfile.txt
testfile.txt                                          100% 116KB 378.0KB/s 00:00

将本机/opt/testdir/目录上传至共享文件系统的/home/kenc-user/目录下:

sftp> put -r /opt/testdir/ /home/kenc-user/
Uploading /opt/testdir/ to /home/kenc-user/testdir
Entering /opt/testdir/
testfile.txt                                          100% 116KB 665.5KB/s 00:00

将共享文件系统的/home/kenc-user/testfile.txt文件下载至本机的/opt目录下:

sftp> get /home/kenc-user/testfile.txt /opt
Fetching /home/kenc-user/testfile.txt to /opt/testfile.txt
testfile.txt                                          100% 116KB 209.3KB/s 00:00

将共享文件系统的/home/kenc-user/testdir/目录下载至本地的/opt目录下:

sftp> get -r /home/kenc-user/testdir/ /opt
Fetching /home/kenc-user/testdir/ to /opt/testdir
Retrieving /home/kenc-user/testdir
testfile.txt                                          100% 116KB 208.2KB/s 00:00

其他一些SFTP常用命令

#本地操作(操作本地文件)
lls	#列出本地当前目录的文件
lcd /path	#切换本地工作目录
lpwd	#显示本地当前目录路径
lmkdir dirname	#在本地创建目录

#远程操作(操作远程文件)
ls	#列出远程目录内容
cd /path	#切换远程工作目录
pwd	#显示远程当前目录路径
mkdir dirname	#在远程创建目录
rmdir dirname	#删除远程空目录
rm filename	#删除远程文件
mv oldname newname	#重命名或移动远程文件

3.基于curl命令的一键式命令行的演示

curl 工具本身就支持SFTP 协议,无需额外安装其他库。

下载文件

curl -u <用户名>:<密码> sftp://<服务器地址>/<远程文件路径> -o <本地保存路径>

<用户名>: SFTP 服务器的用户名。

<密码>: SFTP 服务器的密码。

<服务器地址>: SFTP 服务器的IP 地址或域名。

<远程文件路径>: SFTP 服务器上要下载的文件的完整路径。

<本地保存路径>: 将文件保存到本地的路径和文件名。

上传文件

curl -u <用户名>:<密码> -T <本地文件路径> sftp://<服务器地址>/<远程目录路径>/<文件名>

<用户名>: SFTP 服务器的用户名。

<密码>: SFTP 服务器的密码。

<本地文件路径>: 本地要上传的文件路径。

<服务器地址>: SFTP 服务器的IP 地址或域名。

<远程目录路径>: SFTP 服务器上要上传到的目录路径。

<文件名>: 上传到SFTP 服务器上文件的名称。

4.基于scp命令的一键式命令行的演示

scp是ssh自带的远程复制工具,和sftp相比,scp命令省去了交互式的操作方法,可以一键完成数据的传输。更适合单次数据传输或在shell脚本中使用。

上传文件

从本地上传文件或整个目录到共享文件系统

#上传单个文件
scp  <本地文件>  <用户名>@<主机名>:<共享文件系统路径>
#上传整个目录
scp -r <本地目录> <用户名>@<主机名>:<共享文件系统路径>

下载文件

从共享文件系统下载文件或整个目录到本地

#下载单个文件
scp    <用户名>@<主机名>:<共享文件系统文件> <本地路径>
#下载整个目录
scp -r  <用户名>@<主机名>:<共享文件系统目录> <本地路径>

示例:

将本机/opt/testfile.txt文件上传至共享文件系统的/home/kenc-user/目录下:

localhost ~ % scp /opt/testfile.txt user@1.2.3.4:/home/kenc-user
user@1.2.3.4's password:
testfile.txt                                         100%  116KB 499.8KB/s 00:00

将本机/opt/testdir/目录上传至共享文件系统的/home/kenc-user/目录下:

localhost ~ % scp -r /opt/testdir user@1.2.3.4:/home/kenc-user
user@1.2.3.4's password:
testfile.txt                                          100% 116KB 314.5KB/s 00:00
localhost ~ % 

5.基于rclone工具的高级命令行传输方式的演示

Rclone是一个用于管理云存储文件的命令行程序。它是云供应商网络存储界面的功能丰富的替代方案。超过70种云存储产品支持rclone,包括S3对象存储、商业及个人文件存储服务以及标准传输协议。

除了sftp和scp名另外,用户还可以使用rclone进行更多高级的操作,譬如:

◦ 提供诸如cat、copy、move、sync等命令,功能丰富。

◦ 通过调整并发参数提高并发传输文件数量,从而传输提高速度。

◦ 方便地配置多种后端存储能力,并在多个存储服务之间高效传输、同步数据,例如将S3系统上的数据直接导入sftp后端而不需要再开发程序。

更多Rclone的介绍,请查看官网 rclone.org

本地使用rclone配置sftp参考

安装请参见官方文档,安装完成后,用户可以通过rclone config进行向导式配置,也可以直接创建配置文件,例如:

#创建配置文件
mkdir -p ~/.config/rclone && touch ~/.config/rclone/rclone.conf

#配置文件内容如下:
[sfss] #remote远程服务名称,rclone通过该名称在命令行中标识远端
type = sftp
host = 1.2.3.4 #主机名
user = root #用户名
#注意,密码和密钥保留一种即可
pass = P1a0BMOqg-Un__hxFvCRf9WusiNHuYtvoItR #注意这里必须是密文密码,可由“rclone obscure 明文密码”命令生成对应的密文密码
key_file = /home/user/.ssh/id_rsa #私钥文件路径
shell_type = unix

上传的基本操作

从本地上传文件或整个目录到共享文件系统

#上传单个文件
rclone copy  <本地文件>  <远程服务名称>:<共享文件系统目录>
#上传整个目录
rclone copy  <本地目录>  <远程服务名称>:<共享文件系统目录>

下载的基本操作

从共享文件系统下载文件或整个目录到本地

#下载单个文件
rclone copy  <远程服务名称>:<共享文件系统目录> <本地文件>  
#下载整个目录
rclone copy  <远程服务名称>:<共享文件系统目录> <本地目录>  

示例:

将本地/opt/testdir/ 目录上传至共享文件系统目录/home/下,sfss为rclone配置文件中的远端服务名:

localhost ~ % rclone copy /opt/testdir/ sfss:/home/ --progress
Transferred:             462.344 KiB / 462.344 KiB, 100%, 231.310 KiB/s, ETA 0s
Transferred:                       4 / 4,100%
Elapsed time:                2.0s
localhost ~ %

将本地/opt/testfile.txt文件上传至共享文件系统目录/home/下,sfss为rclone配置文件中的远端服务名:

localhost ~ % rclone copy /opt/testfile.txt sfss:/home/ --progress
Transferred:              0 B / 0 B, -, 0 B/s, ETA -
Elapsed time:         0.0s

将共享文件系统目录/home/testfile.txt文件下载到本地/opt/下,sfss为rclone配置文件中的远端服务名:

localhost ~ % rclone copy sfss:/home/testfile.txt /opt --progress
Transferred:    115.586 KiB / 115.586 KiB, 100%, 0 B/s, ETA -
Transferred:          1 / 1, 100%
Elapsed time:       0.4s

将共享文件系统目录/home/testdir/下载到本地/opt/下,sfss为rclone配置文件中的远端服务名:

localhost ~ % rclone copy sfss:/home/testdir/ /opt/ --progress
Transterred:        0 B / 0 B, -, 0 B/s, ETA -
Checks:           1 / 1, 100%
Elapsed time:   0.2s

其他一些rclone常用命令

rclone ls remote:path #​​查看文件​​
rclone copy src dst #​​复制​​
rclone sync src dst #​​同步
rclone move src dst #​​移动/重命名​​	
rclone delete remote:path #​​删除​​	
rclone mount remote:path /mnt #​​挂载​​
rclone check src dst #​​比较​​	
rclone copy --bwlimit 1M src dst #​​限速​​
rclone copy --update src dst #​​增量备份​​
rclone copy -P src dst #​​进度/日志​​

6.基于filezilla图形化界面的文件管理及传输演示

SFTP还支持图形化客户端。其中,FileZilla 是一款开源、免费、快速、可靠的跨平台FTP、FTPS和SFTP客户端,具有许多有用的功能和直观的图形用户交互界面,是使用最广泛的FTP类图形化客户端。类似的商业软件还包括:CuteFTP、LeapFTP和FlashFXP等。

FileZilla支持Windows、MacOS和Linux的图形化界面,用户可以方便地在自己的办公电脑、Windows服务器上使用FileZilla作为可视化的数据传输工具。除了基本的SFTP功能外,FileZilla还支持:

  • 拖拽式文件传输

  • 可视化进度监控

  • 断点续传

更多信息请查看FileZilla官网。

请在官网上下载FileZilla Client,并根据自己的操作系统选择相应的安装程序,如下图:

下载安装后打开FileZilla,如下图所示:

上传下载文件操作

选中文件点击上传即可,可以选中多个文件或者目录上传到指定远端目录。当然,双击多拽也可以实现相同的效果。同时FileZilla支持断点续传,文件覆盖或重命名等功能。

7.常见问题解答

Q1:传输加速优化方案

  • 在Linux下将TCP拥塞算法调整为BBR,优化大数据量上传场景。

#在客户端执行
sysctl -w net.ipv4.tcp_congestion_control=bbr

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈