作为一个程序员,如果不知道如何进行远程服务器的文件上传与下载,实在是一件尴尬的事情。打开百度,搜索「远程服务器 上传下载」,你能得到 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 实现了更高效的传输算法,不需要等待数据包确认, 那么,我们就选择 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 ToolkitCloud Toolkit 提供 IntelliJ IDEA、Eclipse、VS Code、PyCharm 多个版本供开发者使用。这里,我们以 IntelliJ IDEA 举例。我们可以直接在 JetBrains 插件市场搜索 Alibaba Cloud Toolkit 并下载安装。
- 在 IntelliJ IDEA 顶部菜单栏中选择 File > Settings
- 在 Settings 对话框的左侧导航栏中单击 Plugins
- 在 Plugins 区域单击 Marketplace
- 在搜索栏中输入 Alibaba Cloud Toolkit
- Search Results 区域会出现 Alibaba Cloud Toolkit,单击 Install
- 等待下载、安装完成后,单击 Restart IDE
- IntelliJ IDEA 重启后,在菜单栏中选择 File > Settings,在 Settings 对话框左侧的导航栏中可以看到 Alibaba Cloud Toolkit,则说明安装成功
是不是很简单,那就快来下载 Cloud Toolkit!
关于 Cloud ToolkitAlibaba 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 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”
原文链接:https://developer.aliyun.com/article/771068?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。