2016-09-09 4 views
2

FTPサーバーからすべてのファイルを読み込むようにJava DSLでゲートウェイを設定したいのですが、別のフォルダにあるのでです。春の統合FTPはJava DSLを使用してファイルを再帰的に読み取る

どうすればいいですか?プロジェクトのtest-casesから

@Bean 
    public FtpOutboundGatewaySpec ftpOutboundGateway() { 
     return Ftp.outboundGateway(this.ftpSessionFactory, 
       AbstractRemoteFileOutboundGateway.Command.MGET, "payload") 
       .options(AbstractRemoteFileOutboundGateway.Option.RECURSIVE) 
       .regexFileNameFilter("(subFtpSource|.*1.txt)") 
       .localDirectoryExpression("@ftpServer.targetLocalDirectoryName + #remoteDirectory") 
       .localFilenameExpression("#remoteFileName.replaceFirst('ftpSource', 'localTarget')"); 
    } 

    @Bean 
    public IntegrationFlow ftpMGetFlow(AbstractRemoteFileOutboundGateway<FTPFile> ftpOutboundGateway) { 
     return f -> f 
       .handle(ftpOutboundGateway) 
       .channel(remoteFileOutputChannel()); 
    } 

    @Bean 
    public PollableChannel remoteFileOutputChannel() { 
     return new QueueChannel(); 
    } 

コピー/貼り付け: - 私は、コード例が

答えて

1

このような何かを喜ばapreciate。

+0

ファイルを取得する必要があるリモートディレクトリを指定する方法を教えてください。 –

+0

これは、 'Ftp.outboundGateway()'ファクトリの2番目の引数の式です。通常は、リクエストメッセージにリモートパスを指定します。だから私のサンプルでは ''ペイロード ''のように '' –

+0

あなたは私にサンプルを与えることができますか? sftp mgetを/ tmp/remoteDirectoryフォルダから起動する必要がある場合、2番目の引数はどのようにするべきですか?また、どのような要求メッセージですか?正規表現で一致が見つかった場合、これは自動的に起動されませんか? –

関連する問題