Ich versuche, out-of-date zu entfernen Dateien in einem SFTP-Remote-Ordner mithilfe:Feder Integration SFTP Outbound-Gateway entfernen
<int-sftp:outbound-gateway
session-factory="sftpSessionFactory"
request-channel="rmChannel"
reply-channel="sftpOutputChannel"
remote-file-separator="/"
command="rm"
expression="headers['file_remoteDirectory'] + headers['file_remoteFile']">
<int-sftp:request-handler-advice-chain>
<si:retry-advice />
</int-sftp:request-handler-advice-chain>
</int-sftp:outbound-gateway>
, bevor sie in Gateway immer gibt es einen Filter, um nur die Dateien auszuwählen, aus von Datum:
@Override
@Filter
public boolean accept(Message<?> message) {
if (message.getPayload() instanceof FileInfo) {
final FileInfo fileInfo = (FileInfo) message.getPayload();
final DateTime lastModified = new DateTime(fileInfo.getModified());
boolean accept = lastModified.plusDays(this.days).isBeforeNow();
return accept;
}
return false;
}
die Fragen sind:
- warum der Header 'file_remoteFile' werden nicht automatisch erstellt?
- Wenn der Remote-Ordner leer ist und nichts zu entfernen ist, kann das Programm nicht anhalten. Wie soll ich das lösen?
Danke für die Antwort! Also habe ich 'header-enreicher' verwendet und dieses Problem gelöst. – TiTing
Großartig! Zeit, die Antwort zu akzeptieren? http://StackOverflow.com/Help/Someone-answers –
Für die zweite Frage, ist mein Test unter: – TiTing