Ant ftp 文件传输效率提升

举报
大数据小粉 发表于 2017/05/17 16:59:17 2017/05/17
【摘要】 使用cmd的ftp传输模式,在原来默认的ftp传输基础上,效率可以提高5倍左右,都是使用的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文件中,将自己要传输的文件名替换到该文件中,即可改造成cmdftp传输模式
<exec executable="cmd.exe"> 
<arg line="/c ftp.bat"/>
</exec>

使用cmdftp传输模式,在原来默认的ftp传输基础上,效率可以提高5倍左右,都是使用的ftp协议

传输文件,传输的方式不一样,效率差别这么大,多多尝试,换种方式就有提升的可能性。

作者 | 陈军练

转载请注明出处:华为云博客https://portal.hwclouds.com/blogs/

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。