2016-10-12 12 views
1

を削除:ファイルだけを選択するためのフィルタがあるゲートウェイに入る前に、春の統合sftpのアウトバウンドゲートウェイ私が使用してSFTPリモートフォルダ内の期限切れのファイルを削除しようとしている

<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> 

を日:

@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; 
} 

質問がされている: 'file_remoteFile' ヘッダが自動的に

  1. を作成されていませんなぜですか?
  2. リモートフォルダが空で、削除するものがない場合、プログラムは停止できません。これをどのように解決すればよいですか?

答えて

0

FileHeaders.REMOTE_FILE、ならびにFileHeaders.REMOTE_DIRECTORYprducingコンポーネントによって自動的に作成されます。リモートファイルを手動で削除する予定であるため、これらのヘッダも手動で指定する必要があります。または、他のプロパティを使用して、削除するリモートパスを構築してexpressionにします。

もう1つの質問が明確ではありません。

私はちょうどテストおよび削除する一切のリモートファイルが存在しないとき、これで終わっています

org.springframework.core.NestedIOException: Failed to remove file.; nested exception is 2: /junk 

    at org.springframework.integration.sftp.session.SftpSession.remove(SftpSession.java:83) 
... 
Caused by: 2: /junk 
    at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846) 
    at com.jcraft.jsch.ChannelSftp.rm(ChannelSftp.java:1958) 
    at org.springframework.integration.sftp.session.SftpSession.remove(SftpSession.java:79) 

は、そのため何も削除しないようにした場合にスローされる例外があります。

してくださいは、あなたのプログラムが停止したり、他に何あなたが存在しない削除ファイルを削除しようとすると、周りに起こることができない多くの方法を詳しく説明します。

+0

お返事ありがとうございます!だから私は 'header-enricher'を使ってこの問題を解決しました。 – TiTing

+0

素晴らしい!答えを受け入れる時間? http://stackoverflow.com/help/someone-answers –

+0

2番目の質問については、私のテストは以下の通りです: – TiTing

関連する問題