Ich versuche mit Spring Boot, Integration ftp Beispiel (http://docs.spring.io/spring-integration/reference/html/ftp.html, 15.5.1). Ich bin in der Lage, Dateien aus dem Remote-Verzeichnis zu lesen, einige, wie es nicht die Dateien mit dem Flag setDeleteRemoteFiles (true) zu löschen. Bitte lassen Sie mich wissen, wenn ich vermisse, um Flags zu setzen, um entfernte Dateien zu entfernen.FtpInboundFileSynchronizer.setDeleteRemoteFiles (true) nicht entfernte Dateien nach der Übertragung zu löschen
@Bean
public SessionFactory<FTPFile> ftpSessionFactory() {
DefaultFtpSessionFactory sf = new DefaultFtpSessionFactory();
sf.setHost("localhost");
sf.setPort(21);
sf.setUsername("sudaredd");
sf.setPassword("");
return new CachingSessionFactory<FTPFile>(sf);
}
@Bean
public FtpInboundFileSynchronizer ftpInboundFileSynchronizer() {
FtpInboundFileSynchronizer fileSynchronizer = new FtpInboundFileSynchronizer(ftpSessionFactory());
fileSynchronizer.setDeleteRemoteFiles(true);
fileSynchronizer.setRemoteDirectory("");
fileSynchronizer.setFilter(new FtpSimplePatternFileListFilter("*"));
return fileSynchronizer;
}
@Bean
@InboundChannelAdapter(channel = "ftpChannel", poller = @Poller(fixedDelay = "5000"))
public MessageSource<File> ftpMessageSource() {
FtpInboundFileSynchronizingMessageSource source =
new FtpInboundFileSynchronizingMessageSource(ftpInboundFileSynchronizer());
source.setLocalDirectory(new File("ftp-inbound"));
source.setAutoCreateLocalDirectory(true);
source.setLocalFilter(new AcceptOnceFileListFilter<File>());
return source;
}
Wenn wir den gleichen Dateinamen in local vs. remote haben, wird die Datei aus dem lokalen Verzeichnis abgerufen und an service activator übergeben. Wenn ich Dateien aus meinem lokalen Verzeichnis lösche, kopiert es auf lokale Dateien und entfernt entfernte Dateien. –
Ok! Also, was ist die Frage? Dies ist das erwartete Verhalten. Wenn Sie die Remote-Datei auf irgendeine Weise entfernen möchten, sollten Sie "RemoteFileTemplate" direkt nach dem Service verwenden. –