亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring boot項目集成Camel FTP的方法示例

2024-07-14 08:42:28
字體:
來源:轉載
供稿:網友

1、Spring 中集成camel-ftp

近期項目中涉及到定期獲取讀取并解析ftp服務器上的文件,自己實現ftp-client的有些復雜,因此考慮集成camel-ftp的方式來解決ftp文件的下載問題。自己則專注于文件的解析工作.

demo: https://github.com/LuckyDL/ftp-camel-demo

1.1、POM引用

<dependency>  <groupId>org.apache.camel</groupId>  <artifactId>camel-spring-boot-starter</artifactId>  <version>2.22.1</version></dependency><dependency>  <groupId>org.apache.camel</groupId>  <artifactId>camel-ftp</artifactId>  <version>2.22.1</version></dependency>

注意:在選擇版本的時候,如果SpringBoot版本是1.5.10.RELEASE的話,那么camel的版本最高只能使用2.21.2,使用2.22版本將會報錯。經測試的配套關系如下:

 

SrpingBoot Camel
1.5 <=2.21.2
2.0 >=2.22.x

 

其他情況都會出現錯誤.

1.2、SpringBoot application.yml配置

ftp: addr: 172.18.18.19:21  # ftp地址、端口 name: ftpuser password: ftp2018 options: password=${ftp.password}&readLock=rename&delay=10s&binary=true&filter=#zipFileFilter&noop=true&recursive=true url: ftp://${ftp.name}@${ftp.addr}/?${ftp.options} # 本地下載目錄 local-dir: /var/data# 后臺運行進程camel: springboot:  main-run-controller: truemanagement: endpoint:  camelroutes:   enabled: true   read-only: true

配置說明:

  • delay:每次讀取時間間隔
  • filter: 指定文件過濾器
  • noop:讀取后對源文件不做任何處理
  • recursive:遞歸掃描子目錄,需要在過濾器中允許掃描子目錄
  • readLock:對正在寫入的文件的處理機制

更多參數配置見官方手冊

1.3、配置路由

要配置從遠端服務器下載文件到本地,格式如下,from內部為我們在上面配置的url,to為本地文件路徑。

@Componentpublic class DownloadRoute extends RouteBuilder {  /** logger */  private static final Logger logger = LoggerFactory.getLogger(DownloadRoute.class);  @Value("${ftp.server.info}")  private String sftpServer;    @Value("${ftp.local.dir}")  private String downloadLocation;    @Autowired  private DataProcessor dataProcessor;  @Override  public void configure() throws Exception{    from(sftpServer)        .to(downloadLocation)        .process(dataProcessor)        .log(LoggingLevel.INFO, logger, "Download file ${file:name} complete.");  }}

說明:

若將from配置為本地地址,to配置為遠端地址,則可以實現向遠端服務器上傳文件

process是數據處理器,如果僅僅是下載文件到本地,那么就不需要該配置。

也可以配置多條路由也處理不同的業務:

@Override  public void configure() throws Exception{    // route1    from(sftpServer)        .to(downloadLocation)        .process(dataProcessor)        .log(LoggingLevel.INFO, logger, "Download file ${file:name} complete.");    // route2    from(xxx).to(xxxx);        // route3    from(xxxx).to(xxx).process(xxx);  }

1.4、配置文件過濾

如果ftp服務器上有很多文件,但是我們需要的只是其中的一種,全部下載下來,有業務層來實現過濾肯定不合適,我們可以使用camel-ftp的文件過濾器,通過url中的filter來指定,如“filter=#zipFileFilter”,
用戶需要實現GenericFileFilter接口的accept方法。

例如我們只需要下載后綴名為.zip的壓縮包到本地,過濾器的編寫方法如下,因為我要遞歸掃描子目錄,因此類型為目錄的文件也需要允許通過。

/** * camel ftp zip文件過濾器 */@Componentpublic class ZipFileFilter implements GenericFileFilter {    @Override  public boolean accept(GenericFile file) {    return file.getFileName().endsWith(".zip") || file.isDirectory();  }}

1.5、文件處理器

文件處理器就是我們對下載到本地的文件進行處理的操作,比如我們可能需要對下載的文件重新規劃目錄;或者解析文件并進行入庫操作等。這就需要通過實現Processer的process方法。

本文中的demo就是通過processor來解析zip包中的文件內容:

@Componentpublic class DataProcessor implements Processor {  /** logger */  private static final Logger logger = LoggerFactory.getLogger(DataProcessor.class);  @Value("${ftp.local-dir}")  private String fileDir;  @Override  public void process(Exchange exchange) throws Exception {    GenericFileMessage<RandomAccessFile> inFileMessage = (GenericFileMessage<RandomAccessFile>) exchange.getIn();    String fileName = inFileMessage.getGenericFile().getFileName();    String file_path = fileDir + '/' + fileName;    readZip(file_path);  }    ...  // 省略數據處理方法}

2、參考資料

關于camel ftp的各個參數配置,參見官方手冊:http://camel.apache.org/ftp2.html

此處需要注意的是,camel ftp手冊里面只寫了ftp獨有的一些配置項,camel-ftp組件繼承自camel-file,手冊里面有說明,就一句話,不注意就可能忽略了,筆者就是沒注意,被遞歸掃描子目錄的問題折騰了2天(閱讀要細心o(╥﹏╥)o)。。。因此有一些參數配置項可能在camel-ftp手冊里面找不到,請移步至:http://camel.apache.org/file2.html

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品wwwwww| 色婷婷综合久久久久中文字幕1| 成人免费视频97| 日韩成人黄色av| 欧洲精品在线视频| 亚洲欧洲第一视频| 88国产精品欧美一区二区三区| 欧美激情视频一区二区| 国产精品视频免费观看www| 日韩av在线电影网| 成人妇女淫片aaaa视频| 亚洲国产精品久久久久秋霞蜜臀| 热99精品里视频精品| 国产精品1区2区在线观看| 亚洲精品欧美日韩专区| 欧美专区中文字幕| 久久噜噜噜精品国产亚洲综合| 欧美日韩一区免费| 久久亚洲精品小早川怜子66| 国产视频一区在线| 国产精品人人做人人爽| 宅男66日本亚洲欧美视频| 久久天天躁狠狠躁夜夜躁2014| 亚洲天堂av在线免费| 久久精品视频在线播放| 亚洲自拍另类欧美丝袜| 日韩欧美国产激情| 狠狠做深爱婷婷久久综合一区| 国产精品视频网址| 国产成人拍精品视频午夜网站| 亚洲一区亚洲二区| 亚洲石原莉奈一区二区在线观看| 亚洲国产高清福利视频| 亚洲大胆人体视频| 国产一区在线播放| 亚洲精品国产精品国自产观看浪潮| 亚洲人成网站色ww在线| 91久久国产精品91久久性色| 欧美日韩成人在线视频| 最近2019中文字幕mv免费看| 精品久久久久久久久久久久久久| 日韩视频欧美视频| 亚洲第一在线视频| 久久久久久久久久亚洲| 尤物精品国产第一福利三区| 国语自产在线不卡| 精品成人国产在线观看男人呻吟| 97涩涩爰在线观看亚洲| 欧美精品videofree1080p| 日本19禁啪啪免费观看www| 黄网站色欧美视频| 亚洲最大中文字幕| 久久天天躁狠狠躁夜夜av| 欧美—级a级欧美特级ar全黄| 欧美专区福利在线| 成人免费视频97| 亚洲国产精品高清久久久| 国产精品最新在线观看| 亚洲成色777777在线观看影院| 欧美成人午夜激情在线| 亚洲成人精品av| 一色桃子一区二区| 激情成人在线视频| 日韩电影第一页| 亚洲欧美另类在线观看| 国产精品最新在线观看| 国产精品久久久久久久电影| 亚洲视频在线播放| 国内精品视频久久| 国产一区二区丝袜高跟鞋图片| 欧美激情影音先锋| 国产91在线高潮白浆在线观看| 国产精品亚洲美女av网站| 日韩成人黄色av| 最近中文字幕2019免费| 日韩欧美国产免费播放| 欧美精品18videos性欧美| 精品国产电影一区| 亚洲精品视频免费在线观看| 亚洲国产精彩中文乱码av在线播放| 91成人福利在线| 91精品久久久久久久久青青| 欧美精品一二区| 国产国语刺激对白av不卡| 91精品久久久久久久久| 日韩美女福利视频| 国产成人精品一区| 美乳少妇欧美精品| 久久久久久久一区二区三区| 国产精品精品久久久久久| 蜜臀久久99精品久久久无需会员| 亚洲成人免费网站| 欧美专区在线播放| 中文字幕在线看视频国产欧美| 久久亚洲影音av资源网| 姬川优奈aav一区二区| 久久久久久久久久国产| 原创国产精品91| 国产亚洲欧洲黄色| 欧美韩日一区二区| 欧美精品做受xxx性少妇| 一本大道久久加勒比香蕉| 日韩大陆欧美高清视频区| 国产精品久久久久久久久久久久久| 亚洲高清av在线| 亚洲精品国产精品久久清纯直播| 成人网址在线观看| 国产精品精品视频| 亚洲欧美制服中文字幕| 亚洲国产欧美精品| 不卡av电影在线观看| 欧美黄色片在线观看| 日韩美女av在线免费观看| 一个色综合导航| 欧美视频裸体精品| 日韩免费电影在线观看| 国产精品亚洲精品| 精品一区二区电影| 久99九色视频在线观看| 一区二区三区美女xx视频| 亚洲自拍偷拍网址| 国产丝袜一区二区三区免费视频| 青青草一区二区| 尤物九九久久国产精品的特点| 亚洲新中文字幕| 国产成人+综合亚洲+天堂| 国产精品美女主播在线观看纯欲| 日韩中文综合网| 欧美成人午夜视频| 插插插亚洲综合网| 欧美成人一区二区三区电影| 精品视频一区在线视频| 欧美孕妇毛茸茸xxxx| 国产mv久久久| 国产精品中文久久久久久久| 国产精品91免费在线| 亚洲欧美另类人妖| 亚洲片国产一区一级在线观看| 狠狠躁夜夜躁人人爽超碰91| 日韩欧美第一页| 欧美在线观看日本一区| 国产一区二区三区在线免费观看| 欧美日韩福利在线观看| 亚洲夜晚福利在线观看| 青青草原一区二区| 欧美午夜视频一区二区| 另类视频在线观看| 国产aaa精品| 久久天堂av综合合色| 日韩亚洲在线观看| 69久久夜色精品国产69| 日韩精品高清在线观看| 国产一区二区丝袜高跟鞋图片| 国产亚洲精品久久久优势| 亚洲国模精品私拍| 国产美女直播视频一区| 日韩欧美成人精品| 久久久久久91香蕉国产| 欧美精品www在线观看| 欧美黄色三级网站| 欧美精品在线免费观看| 欧美电影院免费观看| 亚洲老板91色精品久久| 福利一区福利二区微拍刺激|