From 98d5bcff9769b6757c155ba73541d1930fbc4f8a Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期四, 28 三月 2024 11:25:34 +0800 Subject: [PATCH] 经过最近多次调试,实际测试. 改用common.net插件进行远程备份,消除大文件备份中断问题 --- src/main/java/com/whyc/service/FtpService.java | 168 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 86 insertions(+), 82 deletions(-) diff --git a/src/main/java/com/whyc/service/FtpService.java b/src/main/java/com/whyc/service/FtpService.java index 1fe8578..75abbb6 100644 --- a/src/main/java/com/whyc/service/FtpService.java +++ b/src/main/java/com/whyc/service/FtpService.java @@ -1,82 +1,86 @@ -package com.whyc.service; - -import com.enterprisedt.net.ftp.FTPException; -import com.whyc.constant.YamlProperties; -import com.whyc.dto.FileDirPath; -import com.whyc.dto.FtpHelper; -import com.whyc.dto.ZipUtils; -import com.whyc.util.ActionUtil; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Service; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.text.ParseException; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -@ConditionalOnProperty(prefix = "configFile",name = "type",havingValue = "2") -@Service -@EnableScheduling // 2.寮�鍚畾鏃朵换鍔� -public class FtpService { - //瀹氭椂涓婁紶鎸囧畾鐩綍涓嬫枃浠�,姣忓懆浜斿噷鏅ㄥ紑鍚浠� - @Scheduled(cron = "59 59 23 ? * FRI") - //@Scheduled(cron = "0 29 15 * * ?") - public void sendFtpFile() throws IOException, FTPException, ParseException { - //鍏堣繛鎺tp鏈嶅姟鍣� - FtpHelper ftpRemote = new FtpHelper(YamlProperties.ftpIp, YamlProperties.ftpPort, YamlProperties.ftpUserName, YamlProperties.ftpPassword); - String fileDirName = FileDirPath.getFileDirName(); - String rootDoc=fileDirName+File.separator+"doc_file"; - String timeStr= ActionUtil.sdfwithFTP.format(new Date()); - ftpRemote.mkdir(timeStr); - //澶囦唤杩囩▼鏄惁鍑虹幇杩囬棶棰�,鏍囪瘑绗� - boolean isError=false; - try { - - File docFile = new File(rootDoc); - File[] fileList = docFile.listFiles(); - //File[] fileList2 = new File[fileList.length]; - //BeanUtils.copyProperties(fileList2,fileList); - for (File file:fileList) { - //鍘嬬缉浼犺緭 - File fileZip = new File(file.getAbsolutePath() + ".zip"); - ZipUtils.toZip(file.getAbsolutePath(),new FileOutputStream(fileZip),true); - //System.out.println(fileZip.toString()+"鍘嬬缉瀹屾瘯"); - //System.out.println("杩涜FTP浼犺緭涓�..."); - try { - //ZipUtils.toZip(file.getAbsolutePath(),new FileOutputStream(fileZip),true); - String pathName=timeStr+"/"+file.getName()+".zip"; - //System.out.println("浼犺緭鐩爣璺緞纭涓�:"+pathName); - ftpRemote.uploadFile2(fileZip, pathName); - //System.out.println(fileZip+"浼犺緭瀹屾瘯"); - fileZip.delete(); - //System.out.println(fileZip+"浼犺緭涓浆鍘嬬缉鍖呭垹闄ゅ畬姣�"); - } catch (Exception e) { - isError = true; - e.printStackTrace(); - fileZip.delete(); - } - } - //System.out.println("浼犺緭瀹屾瘯"); - - //鑾峰彇澶囦唤鐩綍,淇濈暀4娆�. - //濡傛灉杩囩▼鍑虹幇閿欒,鍒欎笉鍒犻櫎 - if (!isError) { - String[] dirList = ftpRemote.getDirList(); - List<String> dirList2 = Arrays.asList(dirList); - - for (int i = 0; i < dirList2.size()-4; i++) { - ftpRemote.deleteDir(dirList2.get(i)); - } - } - } catch (Exception e) { - - }finally { - ftpRemote.disconnect(); - } - } -} +//package com.whyc.service; +// +//import com.enterprisedt.net.ftp.FTPException; +//import com.whyc.constant.YamlProperties; +//import com.whyc.dto.FileDirPath; +//import com.whyc.dto.FtpHelper; +//import com.whyc.dto.ZipUtils; +//import com.whyc.util.ActionUtil; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +//import org.springframework.scheduling.annotation.EnableScheduling; +//import org.springframework.scheduling.annotation.Scheduled; +//import org.springframework.stereotype.Service; +// +//import java.io.File; +//import java.io.FileOutputStream; +//import java.io.IOException; +//import java.text.ParseException; +//import java.util.Arrays; +//import java.util.Date; +//import java.util.List; +// +//@ConditionalOnProperty(prefix = "configFile",name = "type",havingValue = "2") +//@Service +//@EnableScheduling // 2.寮�鍚畾鏃朵换鍔� +//public class FtpService { +// //瀹氭椂涓婁紶鎸囧畾鐩綍涓嬫枃浠�,姣忓懆浜斿噷鏅ㄥ紑鍚浠� +// //@Scheduled(cron = "59 59 23 ? * FRI") +// @Scheduled(cron = "0 30 8 * * ?") +// public void sendFtpFile() throws IOException, FTPException, ParseException { +// //鍏堣繛鎺tp鏈嶅姟鍣� +// FtpHelper ftpRemote = new FtpHelper(YamlProperties.ftpIp, YamlProperties.ftpPort, YamlProperties.ftpUserName, YamlProperties.ftpPassword); +// String fileDirName = FileDirPath.getFileDirName(); +// String rootDoc=fileDirName+File.separator+"doc_file"; +// String timeStr= ActionUtil.sdfwithFTP.format(new Date()); +// ftpRemote.mkdir(timeStr); +// ftpRemote.disconnect(); +// //澶囦唤杩囩▼鏄惁鍑虹幇杩囬棶棰�,鏍囪瘑绗� +// boolean isError=false; +// try { +// +// File docFile = new File(rootDoc); +// File[] fileList = docFile.listFiles(); +// //File[] fileList2 = new File[fileList.length]; +// //BeanUtils.copyProperties(fileList2,fileList); +// for (File file:fileList) { +// FtpHelper ftpTemp = new FtpHelper(YamlProperties.ftpIp, YamlProperties.ftpPort, YamlProperties.ftpUserName, YamlProperties.ftpPassword); +// //鍘嬬缉浼犺緭 +// File fileZip = new File(file.getAbsolutePath() + ".zip"); +// ZipUtils.toZip(file.getAbsolutePath(),new FileOutputStream(fileZip),true); +// //System.out.println(fileZip.toString()+"鍘嬬缉瀹屾瘯"); +// //System.out.println("杩涜FTP浼犺緭涓�..."); +// try { +// //ZipUtils.toZip(file.getAbsolutePath(),new FileOutputStream(fileZip),true); +// String pathName=timeStr+"/"+file.getName()+".zip"; +// //System.out.println("浼犺緭鐩爣璺緞纭涓�:"+pathName); +// ftpTemp.uploadFile2(fileZip, pathName); +// //System.out.println(fileZip+"浼犺緭瀹屾瘯"); +// fileZip.delete(); +// //System.out.println(fileZip+"浼犺緭涓浆鍘嬬缉鍖呭垹闄ゅ畬姣�"); +// } catch (Exception e) { +// isError = true; +// e.printStackTrace(); +// fileZip.delete(); +// }finally { +// ftpTemp.disconnect(); +// } +// } +// //System.out.println("浼犺緭瀹屾瘯"); +// +// //鑾峰彇澶囦唤鐩綍,淇濈暀4娆�. +// //濡傛灉杩囩▼鍑虹幇閿欒,鍒欎笉鍒犻櫎 +// if (!isError) { +// FtpHelper ftpTemp = new FtpHelper(YamlProperties.ftpIp, YamlProperties.ftpPort, YamlProperties.ftpUserName, YamlProperties.ftpPassword); +// String[] dirList = ftpRemote.getDirList(); +// List<String> dirList2 = Arrays.asList(dirList); +// +// for (int i = 0; i < dirList2.size()-4; i++) { +// ftpTemp.deleteDir(dirList2.get(i)); +// } +// ftpTemp.disconnect(); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +//} -- Gitblit v1.9.1