فهرست منبع

更改sftp服务器文件下载方式

xusonglin 5 سال پیش
والد
کامیت
8702406dc7

+ 11 - 1
src/main/java/com/jkcredit/asychronous/ftp/ManDownloadRoute.java

@@ -1,7 +1,6 @@
 package com.jkcredit.asychronous.ftp;
 
 import com.jkcredit.asychronous.process.ManLocationFileProcessor;
-import com.jkcredit.asychronous.util.SFTPUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.builder.RouteBuilder;
@@ -17,6 +16,9 @@ import org.springframework.stereotype.Component;
 @Slf4j
 @Component
 public class ManDownloadRoute extends RouteBuilder {
+
+    @Value("${manftp.download.ftp}")
+    private String sftpServer;
     @Value("${manftp.download.dir}")
     private String downloadLocation;
 
@@ -25,10 +27,18 @@ public class ManDownloadRoute extends RouteBuilder {
 
     @Override
     public void configure() {
+        downRoute();
         parseRoute();
     }
 
     /**
+     * 下载路由
+     */
+    private void downRoute() {
+        from(sftpServer).to(downloadLocation).log(LoggingLevel.INFO, log, "Downloaded ManFile ${file:name} complete.");
+    }
+
+    /**
      * 解析路由
      */
     private void parseRoute() {

+ 9 - 8
src/main/java/com/jkcredit/asychronous/job/ManJob.java

@@ -114,13 +114,14 @@ public class ManJob {
         }
     }
 
-    @Scheduled(cron = "0 0/1 * * * ?", zone = "Asia/Shanghai")
-    private void downloadFile() {
-        try {
-            SFTPUtil.download(userName, port, host, passphrase, keyFilePath, fileDir, manDownloadPath);
-        } catch (Exception e) {
-            log.error("下载文件失败,失败原因:{}", e.getMessage());
-        }
-    }
+    // 手动创建连接,远程sftp文件下载,使用路由替代此方法
+//    @Scheduled(cron = "0 0/1 * * * ?", zone = "Asia/Shanghai")
+//    private void downloadFile() {
+//        try {
+//            SFTPUtil.download(userName, port, host, passphrase, keyFilePath, fileDir, manDownloadPath);
+//        } catch (Exception e) {
+//            log.error("下载文件失败,失败原因:{}", e.getMessage());
+//        }
+//    }
 
 }

+ 6 - 4
src/main/java/com/jkcredit/asychronous/util/SFTPUtil.java

@@ -4,12 +4,14 @@ import com.jcraft.jsch.ChannelSftp;
 import com.jcraft.jsch.JSch;
 import com.jcraft.jsch.Session;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.StringUtils;
 
-import java.io.*;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.Vector;
 
 /**
  * @description:

+ 2 - 1
src/main/resources/application-dev.yml

@@ -22,7 +22,8 @@ camel:
     main-run-controller: true
 manftp:
   download:
-    dir: C:\Users\Administrator\Desktop\ftp
+    ftp: sftp://jksftp@103.105.200.77:10088/download/?privateKeyFile=C:\Users\Administrator\Desktop\sftp_rsa&privateKeyPassphrase=lgZ7dRdrhehp2bj&delay=5s&delete=true&readLock=fileLock&passiveMode=true
+    dir: file:C:\Users\Administrator\Desktop\ftp\
     info: C:\Users\Administrator\Desktop\ftp
   upload:
     local: C:\Users\Administrator\Desktop\ftp

+ 2 - 21
src/main/resources/application-prod.yml

@@ -16,38 +16,19 @@ spring:
         acknowledge-mode: manual
       simple:
         acknowledge-mode: manual
-#spring:
-#  data:
-#    mongodb:
-#      uri: mongodb://127.0.0.1:27017/asynchronous
-#  application:
-#    name: asychronous
-#  rabbitmq:
-#    host: 127.0.0.1
-#    port: 5672
-#    username: guest
-#    password: guest
-#    publisher-confirms: true
-#    publisher-returns: true
-#    listener:
-#      direct:
-#        acknowledge-mode: manual
-#      simple:
-#        acknowledge-mode: manual
-#java进程在后台运行
 camel:
   springboot:
     main-run-controller: true
 manftp:
   download:
-#    ftp: sftp://jkxyftp@192.168.1.99:21/download/man/?password=jkxyftp&delay=5s&delete=true&readLock=fileLock&passiveMode=true
+    ftp: sftp://jksftp@103.105.200.77:10088/download/?privateKeyFile=/data/asyncronous/bin/sftp_rsa&privateKeyPassphrase=lgZ7dRdrhehp2bj&delay=5s&delete=true&readLock=fileLock&passiveMode=true
     dir: file:/data/ftp/down/man
     info: /data/ftp/down/man
   upload:
     local: /data/ftp/upload/man
 carftp:
   download:
-    ftp: ftp://jkxyftp@192.168.1.99:21/download/car/?password=jkxyftp&delay=5s&delete=true&readLock=fileLock&passiveMode=true
+    ftp: ftp://jkxyftp@192.168.1.99:21/download/car/?privateKeyFile=/data/asyncronous/bin/sftp_rsa&privateKeyPassphrase=lgZ7dRdrhehp2bj&delay=5s&delete=true&readLock=fileLock&passiveMode=true
     dir: file:/data/ftp/down/car
     info: /data/ftp/down/car
   upload: