作为一个程序员,如果不知道如何进行远程服务器的文件上传与下载,实在是一件尴尬的事情。打开百度,搜索「远程服务器 上传下载」,你能得到 63,100,000 个搜搜结果,五花八门的操作方式的让人眼花缭乱。

那么,今天我们聊聊如何实现远程服务器的文件上传与下载。通常而言,我们会选择 ftp、scp 以及 sftp 进行文件传输。但 ftp 基于 TCP 来传输文件,明文传输用户信息和数据,存在一定的安全风险。所以我们更倾向于选择基于 SSH 来加密传输的 scp 和 sftp,但结合速度、安全性和功能的要求,这两种协议各有优劣。接下来,我们做个简单比较,也许会让你的日常选择更加高效。

什么是 scp?

scp 是一种基于 SSH 的协议,主要用在网络上的主机之间提供文件传输。使用 scp,我们可以在主机之间快速传输文件以及基本文件属性,例如访问权限和通过 FTP 无法可用的时间戳。scp 协议使用 RCP 传输文件和 SSH 以提供身份验证和加密。

如何通过 scp 进行文件上传与下载?

先介绍我们最常见的,在 linux 中可以使用 scp 进行文件上传和下载。

  • 文件上传:scp localfile user@host:/dirpath

即 SCP 文件路径远程主机用户名@ip:/存放文件的路径,比如 scp hello.txt user@ip:/home/user/dirpath

  • 从本地上传目录到远程主机 : scp -r localdir user@host:/dirpath

即 scp -r 本地目录路径远程主机用户名@ip:/存放文件路径

  • 从远程主机下载东西到本地电脑拷贝文件命令 scp user@host:/path/file /localpath

即 scp用户名@IP:/文件路径 /本地文件路径

  • 如果拷目录就 scp -r user@host:/dirpath /localpath

即 scp -r 用户名@IP:/目录路径 /本地文件路径

什么是 sftp?

sftp 同样是基于 SSH 的文件传输协议,但功能更强大。相较于 scp,更像是远程文件管理协议,sftp 允许对远程文件(查看目录,删除文件和目录等)进行一系列操作。

如何通过 sftp 进行文件上传与下载

而 sftp 下,我们可以通过 linux 命令行,使用 SFTP 命令进行直接操作:

  • sftp 用户名@ip;
  • 回车提示输入密码,进入提示符 sftp>;
  • 在 sftp 中 get 表示下载,put 表示上传;
  • sftp> get 远程主机下文件的路径、将文件保存到本地电脑的路径;
  • sftp> put 本地文件的路径、将文件版保存到远程主机的路径;
  • pwd 命令可以帮您查询远程主机的当前路径。查询本机当前工作目录 lpwd.,改变路径可以用 cd ,改变本机路径可以用 lcd;ls rm rmdir mkdir 这些命令都可以使用。同理调用本机都是加 l , 即 lls lrm。

到底什么时候应该使用 scp 或 sftp?

  • 速度:在传输文件时,scp 通常比 sftp 快得多,尤其是在网络延迟很高的情况下。这是因为 scp 实现了更高效的传输算法,不需要等待数据包确认, 那么,我们就选择 scp;

  • 安全性:由于两种协议都都基于 SSH,因此它们都提供相同的安全功能,包括密码和数据加密以及公钥验证,那么,scp 或 sftp 皆可;

  • 功能/可用性:如果我们需要使用包括查看/搜索目录,创建文件夹和组织文件,删除或重命名文件等功能,那么,sftp 是最好的选择;

  • 传输文件大小:scp 和 sftp 都没有文件大小限制。但根据传输文件大小,scp 可能略有优势。

我们要做什么?

但不管是 scp 还是 sftp,我们都需要输入相关指令行。一顿操作猛如虎,其实只为了完成简单的文件上传与下载。当然,除去常见的 CLI 指令行的形式,我们可以通过现在比较受欢迎的终端模拟器软件 xshell 和 securecrt 实现相关功能。xshell 和 securecrt 作为常用的串口终端工具,通过可视化形式可以满足相关需求并具备着丰富的延展功能。但经过用户调研,我们发现开发者其实有时只是希望实现上传以及下载功能。与此同时,功能能够与开发环境集成,这样子在 IDE 里面就可以写代码和文件上下传都可以无缝进行了。

那么,现在有了更简单的远程服务器文件上传与下载方式。借助 IDE 内的远程服务器文件浏览器,我们可以更加便捷的形式实现上传、下载文件。而这一切,我们仅需要 Cloud Toolkit 即可,只需三步即可,就像把大象关进冰箱一样简单。

  • 在 IntelliJ IDEA 菜单栏选择 Tools > Alibaba Cloud > Alibaba Cloud View > Host
  • 在 Host 列表右侧 Action 选择 More > Remote Files
  • 可根据需求选择刷新、上传和下载远程服务器上的文件

此外,还可以借助 Cloud Toolkit 将本地应用快速部署到阿里云 ECS、EDAS、容器服务 Kubernetes 版和任意服务器中去,还可以使用 Arthas 诊断、文件或文件夹上传、内置 Terminal 等诸多功能。

如何安装 Cloud Toolkit

Cloud Toolkit 提供 IntelliJ IDEA、Eclipse、VS Code、PyCharm 多个版本供开发者使用。这里,我们以 IntelliJ IDEA 举例。我们可以直接在 JetBrains 插件市场搜索 Alibaba Cloud Toolkit 并下载安装。

  1. 在 IntelliJ IDEA 顶部菜单栏中选择 File > Settings
  2. 在 Settings 对话框的左侧导航栏中单击 Plugins
  3. 在 Plugins 区域单击 Marketplace
  4. 在搜索栏中输入 Alibaba Cloud Toolkit
  5. Search Results 区域会出现 Alibaba Cloud Toolkit,单击 Install

  1. 等待下载、安装完成后,单击 Restart IDE
  2. IntelliJ IDEA 重启后,在菜单栏中选择 File > Settings,在 Settings 对话框左侧的导航栏中可以看到 Alibaba Cloud Toolkit,则说明安装成功

是不是很简单,那就快来下载 Cloud Toolkit!

关于 Cloud Toolkit

Alibaba Cloud Toolkit(后文简称 Cloud Toolkit)可以帮助开发者更高效地部署、测试、开发和诊断应用。Cloud Toolkit 与主流 IDE 及阿里云其他产品无缝集成,帮助您大大简化应用部署到服务器,尤其是阿里云服务器中的操作。您还可以通过其内嵌的Arthas程序诊断、Terminal Shell 终端和 MySQL 执行器等工具,简化应用开发、测试和诊断的过程。目前有超过 10w 开发者选择使用 Cloud Toolkit 提升日常研发效率。

点击链接立即体验 Cloud Toolkit:https://www.aliyun.com/product/cloudtoolkit

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

科普|不同协议下远程服务器文件上传_下载优劣对比相关推荐

  1. 华为服务器上传文件后怎么通过链接查看,远程服务器文件上传后的操作

    远程服务器文件上传后的操作 内容精选 换一换 本节指导您基于Linux操作系统环境完成镜像文件快速导入,推荐使用云平台的EulerOS云服务器作为转换镜像格式和生成位表文件的环境.Linux操作系统环 ...

  2. Mac远程服务器文件上传rz和sz的安装使用

    背景 在开发过程中会遇到,需要把本地文件上传到远程服务器的情况:正常情况下可以使用scp实现文件上传:但是大部分公司内部线上服务器都是无法直接登录的,都需要通过跳板机登录,这时scp(ssh)就无法直 ...

  3. python实现TCP远程服务器文件上传,下载系统

    TCP服务器代码如下: from socket import *def client_upload(client_socket):"""上传数据""& ...

  4. 服务器文件上传和下载

    SmbFile 类实现局域网文件共享读写 1.开启远程服务器共享 2. maven添加依赖(如果不是maven工程,请下载jar包   jcifs.jar) <dependency>< ...

  5. SAP服务器文件上传和下载

    经常会在报表中需要用到文件模板,比如新增和修改物料主数据.上传计划数据等等.而user经常会因为找不到模板而对你进行各种骚扰.所以,何不直接把模板放在服务器上,并在报表上提供相应的按钮供user自行下 ...

  6. windows服务器文件上传与下载(不需要下载软件)

    这是初学者的笔记,大佬勿喷,方法很小白,如果有其它方法可以评论指导一下我这个小白哦! 如果觉得我写的不够仔细,可以看看百度教程:添加链接描述 这和我之前笔记正常连接服务器的步骤一样,只有一些不同!正常 ...

  7. Springboot中常用的文件上传和下载通用接口

    记录下通用的文件上传和下载接口,一般的开发中都是会使用到的,不过写的最简单的版本. 文章目录 程序测试 本文小结 程序测试 在yml中配置一个文件保存的路径 #保存文件的路径 common:file: ...

  8. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

  9. 连接远程服务器并上传文件

    连接远程服务器并上传文件 首先挂载***(你懂的!) 挂载后sudo route add -net 192.168.29.0 netmask 255.255.255.0 gw 动态地址 ping 网关 ...

最新文章

  1. web.py搭建服务器
  2. 探秘重编译(Recompilations)(1/2)
  3. 零基础学Python:自定义序列类的详细教程
  4. 2016/3/16 高级查询 ①连接查询 ②联合查询 ③子查询 无关 相关
  5. android webview 获取 title,【报Bug】app webview 安卓机 title显示问题
  6. Sql Server临时表获取链接数据库查询结果
  7. 所有权链(Ownership Chain)
  8. 高并发服务器逻辑处理瓶颈,如何解决?
  9. 计算机房的英语怎么读音,机房位置,Host equipment room,音标,读音,翻译,英文例句,英语词典...
  10. 国内镜像源的使用,提高下载速度
  11. CVPR 2016目标检测
  12. JAVA怎么给扇形加边框_PS怎么制作扇形边框 扇面边框教程
  13. bootstrap-select下拉选项数据超长换行显示
  14. Datawhale-Pandas中文教程[9]
  15. 键盘与ASCII码对应表
  16. 2015年度汽车客运站现状分析及未来趋势发展报告
  17. 如何自学好c语言,如何学好C语言?
  18. 有哪些可以替代NOTION的笔记软件?
  19. 解放双手神器-autojs
  20. html怎么帮图片占位,html占位图img placeholder

热门文章

  1. 【Apache】 LXC 容器中重启 Apache 报错: Failed to set up mount namespacing: Permission denied
  2. 1020 Tree Traversals (25 分) 【难度: 中 / 知识点: 哈希表建树 遍历树】
  3. 【PAT乙级】1063 计算谱半径 (20 分)
  4. 2.3.5 用信号量实现 进程互斥 同步 前驱关系
  5. python tab符号_Python3 expandtabs()方法
  6. python操作文件的库_Python使用pyshp库读取shapefile信息的方法
  7. 如何将比Long类型更大数值字符串转化为整数
  8. WEB前端:浏览器(IE+Chrome+Firefox)常见兼容问题处理【02】
  9. swift 项目_如何对iOS项目进行静态分析
  10. 回溯算法 | 追忆那些年曾难倒我们的八皇后问题