文件批量传输组件可作为一个工具架包,其他系统可调用方法进行文件传输相关操作,能对某个文件夹进行自动监控、多线程批量传输、文件md5对比、错误重传等。文件批量传输组件作为系统直接使用见http://my.oschina.net/passerman/blog/715642。
1. 发送单文件不中转时:
发送端代码例子:
FileClientConfig clientConfig=new FileClientConfig(false,true,false,"localhost",112);
/* clientConfig.setAuthorityCheck(true);//权限验证
clientConfig.setAuthorityKey("password111"); //验证密锁
*/ FileTransferClient fileTransferClient=new FileTransferClient(clientConfig);
fileTransferClient.init();
//要发送的文件
String absolutePath="E:\\log.txt";
FileInfo fileInfo=new FileInfo();
fileInfo.setFilePath(absolutePath);
fileTransferClient.sendFile("\\log2.txt", fileInfo); //想保存的文件名
接收端代码例子:
//只作为接收主机
FileServerConfig fileServerConfig=new FileServerConfig("d:\\csavefile", 112, false);
ServerReceiveControl serverReceiveControl=new ServerReceiveControl(fileServerConfig);
//serverReceiveControl.addServerFilePlugin(new ServerFilePlugin());
//serverReceiveControl.addServerFilePlugin(new DemoServerFilePlugin());
ReceiveServerPulse ReceiveServerPulse=new ReceiveServerPulse( serverReceiveControl);
ReceiveServerPulse.start();
2. 监控文件夹不中转时:
发送端代码例子:
//不中转监控传输
FileClientConfig clientConfig=new FileClientConfig("E:\\upload",true,true,false,"localhost",111);
clientConfig.setTimerTaskPeriod(1000*30);//每30秒监控一次
/*clientConfig.setAuthorityCheck(true);//权限验证
clientConfig.setAuthorityKey("password111"); //验证密锁
*/ FileTransferClient fileTransferClient=new FileTransferClient(clientConfig);
/*fileTransferClient.getTransferControl().addClientFilePlugin(new DemoClientFilePlugin(fileTransferClient.getTransferControl()));//增加自定义拦截器
fileTransferClient.getTransferControl().addClientFilePlugin(new AuthorityClientFilePlugin(fileTransferClient.getTransferControl())); //添加验证拦截器
*/
fileTransferClient.init();
接收端代码例子:
与1相同。
3. 监控文件夹中转传输:
发送端代码例子:
FileClientConfig clientConfig=new FileClientConfig("E:\\upload", true, true, true, "localhost", 111,"localhost",112,201);
clientConfig.setTimerTaskPeriod(1000*30);
clientConfig.setAuthorityCheck(true);//权限验证
clientConfig.setAuthorityKey("password111"); //验证密锁
FileTransferClient fileTransferClient=new FileTransferClient(clientConfig);
fileTransferClient.getTransferControl().addClientFilePlugin(new DemoClientFilePlugin(fileTransferClient.getTransferControl()));
fileTransferClient.getTransferControl().addClientFilePlugin(new AuthorityClientFilePlugin(fileTransferClient.getTransferControl())); //添加验证拦截器
fileTransferClient.init();
中转端代码例子:
FileServerConfig fileServerConfig=new FileServerConfig("d:\\csavefile", 111, true); //文件接收配置类
ServerReceiveControl serverReceiveControl=new ServerReceiveControl(fileServerConfig); //文件接收控制类
serverReceiveControl.addServerFilePlugin(new ServerFilePlugin());
serverReceiveControl.addServerFilePlugin(new DemoServerFilePlugin());
ReceiveServerPulse ReceiveServerPulse=new ReceiveServerPulse(serverReceiveControl);
ReceiveServerPulse.start();
目标接收端代码例子:
//只作为接收主机
FileServerConfig fileServerConfig=new FileServerConfig("d:\\csavefile", 112, false);
ServerReceiveControl serverReceiveControl=new ServerReceiveControl(fileServerConfig);
ReceiveServerPulse ReceiveServerPulse=new ReceiveServerPulse( serverReceiveControl);
ReceiveServerPulse.start();
来源:oschina
链接:https://my.oschina.net/u/2410126/blog/715744