【ftp自动下载和上传的实现】FTP自动下载和上传的实现方法

时间:2017-09-07  来源:安装和部署  阅读:

这种方式的问题就是很麻烦,需要手工上传,当目录很深或者有多个服务器的时候很麻烦。另外也用过SVN的自动部署,文件修改后,check in到SVN,然后到服务器端svn update 以下,比较方便,但是遇到冲突也会很麻烦。所以之前在公司用的都是一个Java开发的上传工具,只要写好配置文件后就可以了,支持多服务器,多工程。
    比如这样:

 代码如下 server.names=192.168.12.221,192.168.9.26,192.168.5.186,114.80.212.238
work.dir=e:\Ftp_Upload_Log
server.cfg.192.168.12.221=\FtpConfig\Ftp_192_168_12_221.properties
server.cfg.114.80.212.238=\FtpConfig\Ftp_114_80_212_238.properties

然后是单独的配置文件:

 代码如下

server.ip = 192.168.5.186
server.account = fff
server.pwd = fff
server.apps = home,wenku

local.source.home =D:/devspace/home
remote.home = /usr/xxtsrc/home
local.bak.home = e:/bak/home

local.source.wenku =D:/devspace/wenku
remote.wenku = /usr/xxtsrc/wenku
local.bak.wenku = e:/bak/wenku

    但是,有一个问题就是配置麻烦,而且不支持SFTP协议。这对于需要在windows和Linux之间传文件很重要。想要重构以前的软件就得改动不少地方。然后就想到了能不能换种方式实现上传下载,最后转了一圈,想到的最简单的方法就是用FTP的队列工具。比如,FlashFxp就有队列功能。但是它不支持自动管理,需要手工添加文件到队列。再想,何不去解析这个队列文件的格式,然后自动生成队列文件呢?

     FlashFxp的帮助文档已经对其队列文件(.fqf)的格式解析的很清楚了。fqf文件是按行组织的。每一行用ASCII 1分割(还有用3的),回车换行结束。具体的格式如下:

 代码如下

解释:
是队列类型,1个字节,0表示文件,1表示文件夹,剩下的几个不常用;
是分隔符,1字节,ASCII为1,是整个fqf文件里的分隔符,每个命令后都会用到;
是上传方向,1字节,0上传,1下载,上传到左边是2,下载到左边是3,上传到右边是4,下载到右边是5。(因为FlashFxp可以左右窗口互换,有点蛋疼)
源主机名:也就是本机,用“-”代替。
目标主机名:也就是你在FlashFxp的站点管理器里设置的站名,前面还有8个字节的hash码。
源文件名,即本机路径;
目标文件名,可以根据源文件名生成
文件大小
回车换行符
其格式如下图所示:

格式知道了,那就很好实现了。用LUA根据上传列表自动生成队列文件,然后调用FlashFxp,即可实现自动上传了。
 当上传比较频繁的时候,还是可以减少一些工作量的。不过依赖于FTP工具。如果时间充足的话,还是考虑重构之前的工具,增加对SFTP协议的支持,重构界面

【ftp自动下载和上传的实现】FTP自动下载和上传的实现方法

http://m.bbyears.com/asp/35402.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新