上传超大文件到云端服务器

发布时间 2023-10-20 21:13:45作者: dyf029

一直以来,通过互联网传送超大文件都是个麻烦事,传统的SSH/FTP工具只适合传输不太大的文件和目录,遇到上G的文件经常会出现传输错误,常用手段如百度云在Linux服务器上没法使用,一些专业传输软件需要在服务端安装开端口,而我们日常遇到的超大文件越来越多,linux的安装包要几个G,docker镜像要几十个G,虚机镜像几百个G......

因此超大文件传输,需要满足:

1)利用现有环境(比如SSH),无需在服务器上安装新软件。

2)传输可靠,经得起互联网的考验,例如网速时快时慢,例如你正在上传时,同事重启了办公室WIFI。

3)传输速度要尽量快,但这方面客观制约因素有点多,如互联网本身的波动,旁边有人在下片等。

 

今天介绍一款工具软件 OnTheSSH ( 下载 )正好满足以上需求。On The SSH名称表示软件是建立在SSH协议上的,使用中只需要服务器开通了SSH服务(这不是问题,SSH服务是Linux服务器的标配)。OnTheSSH提供了几种传输方式,其中文件分割传输适合超大文件传输,帮助手册是这样介绍的:

传输前,在源端先将文件分割成一份份的,然后将这些一份份的文件传输到目的端,传输完成后再将这些一份份的合并。 如果传输过程中有失败的,会自动将失败的这份文件重新传输。

 OnTheSSH软件只有10多M大小,可在Windows和MacOS系统上安装,Windows版采用绿色安装方式,下面我们测试上传一个20G的文件到云端服务器。

 

1、打开OnTheSSH软件,在左边栏鼠标右键选择云端服务器(当然你需要先创建它),在弹出菜单中点击"管理":

 2、调整窗口中路径地址,到上传的目的路径,然后点击上面的“文件分割上传”按钮:

 3、在“创建分割上传任务”窗口中:

  • 源路径:图中的centos7.0.qcow2是虚拟机KVM的镜像文件,大约21G大小。
  • 目的路径:云服务器上的目的路径,文件将上传到这里。
  • 分割参数:分割片文件的大小,这里按默认的每片10M。如果网络很糟糕,应适当减少这个尺寸,因为每一个分割片文件传输失败时会重传这个文件,网络不好会造成大批量重传,分片尺寸大重传浪费就比较大。
  • 本地分割路径:上传前centos7.0.qcow2文件分片存放位置,这个位置的磁盘空闲空间至少要大于centos7.0.qcow2文件的大小。
  • 远端分割目录:上传分片文件时,云端服务器的存放位置,同样磁盘空间要有余量满足分片文件的存放。

  4、点击“确定”按钮后,传输任务就开始了,窗口动态显示传输状态(21G文件有点大,仅分割就要好一会儿):

  • 概况:显示了传输任务的基本信息,源路径、目的路径、传输方向、文件大小、分割路径
  • 状态:显示任务进行到那个阶段
  • 传输进度:显示任务进行的百分比(正在分割文件,还没开始传输,当然是0%)。文件分割数表示分片文件的数量,已传输表示已经传过去了多少个分片文件。

 5、开始传输了:

 6、闲了看看windows系统的网络性能,上传速率21Mbps,办公室用网人多,就这速度,慢慢等吧......

用OnTheSSH提供的系统监控,看看云端服务器的网络速率:

 

 7、又闲了,看看分割片文件的传输情况,这是本地的2049个分片文件:

 这是云端的(缓慢增长中):

 

8、超过一半了:

8、终于传完了,4个小时还是5个小时,记不清了:

 9、计算文件摘要,看看传输是否完整,先看本地:

 再看远端:

 

 完全吻合,Very Good!

 【总结】

OnTheSSH虽然不能提高网速,却能让你放心的把工作交给它,不用担心是否中断了、出错了,可以出去吃个饭、或者晚上睡一觉,它总能给你一个满意的结果。