Ant ftp 文件传输效率提升
默认的ftp传输语法:
<ftp server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}">
<fileset dir="${dist}">
<include name="**/*.zip"/>
</fileset>
</ftp>
对于该默认使用方式,传输较小的文件还可以,同一网段的机器最快也就20M/s左右;
对于较大的文件,传输效率就显得较差,例如传输一个 2G 的文件,光文件传输就得两分钟左右
如何缩短传输时间,提高传输效率,无意间在网上看到cmd模式ftp的传输速度较快,自己在cmd窗口
做实验,速度果然是较Ant 的ftp命令快很多,最高可以达到 120M/s
鉴于当前传输文件的模式使用的是Ant命令模式,如何将cmd的传输模式应用到Ant命令中,就可以
提高文件传输的效率
继续查阅Ant如何执行cmd命令,搜索到可以通过执行bat文件,将cmd要执行的命令放在bat文件中,
就可以用Ant执行cmd模式的ftp文件传输了
为了将这个cmd模式的ftp传输写的更通用,写一个公共的bat文件,每次在调用该命令之前,将要传输的
文件名称替换到该文件中,即可实现原有ftp默认传输的改造,提升文件传输效率
ftp.bat 文件内容
@echo off
set ftpfilename=autoftp.cfg
echo open ftp服务器IP >"%ftpfilename%"
echo ftp用户名>>"%ftpfilename%"
echo ftp用户名密码>>"%ftpfilename%"
echo bin>>"%ftpfilename%"
echo send 要传输的文件名 >>"%ftpfilename%"
echo bye >>"%ftpfilename%"
ftp -s:"%ftpfilename%"
用Ant命令调用:
<replace file ="ftp.bat" token="要传输的文件名" value="ABC.zip" />
在通用的ftp.bat文件中,将自己要传输的文件名替换到该文件中,即可改造成cmd的ftp传输模式
<exec executable="cmd.exe">
<arg line="/c ftp.bat"/>
</exec>
使用cmd的ftp传输模式,在原来默认的ftp传输基础上,效率可以提高5倍左右,都是使用的ftp协议
传输文件,传输的方式不一样,效率差别这么大,多多尝试,换种方式就有提升的可能性。
作者 | 陈军练
转载请注明出处:华为云博客https://portal.hwclouds.com/blogs/
- 点赞
- 收藏
- 关注作者
评论(0)