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();
}
コピー/貼り付け: - 私は、コード例が
ファイルを取得する必要があるリモートディレクトリを指定する方法を教えてください。 –
これは、 'Ftp.outboundGateway()'ファクトリの2番目の引数の式です。通常は、リクエストメッセージにリモートパスを指定します。だから私のサンプルでは ''ペイロード ''のように '' –
あなたは私にサンプルを与えることができますか? sftp mgetを/ tmp/remoteDirectoryフォルダから起動する必要がある場合、2番目の引数はどのようにするべきですか?また、どのような要求メッセージですか?正規表現で一致が見つかった場合、これは自動的に起動されませんか? –