最新の安定バージョンについては、Spring Integration 6.5.3 を使用してください! |
Apache Mina SFTP サーバーイベント
バージョン 5.2 で追加された ApacheMinaSftpEventListener は、特定の Apache Mina SFTP サーバーイベントをリッスンし、ApplicationListener Bean、@EventListener Bean メソッド、またはイベント受信チャネルアダプターで受信できる ApplicationEvent として公開します。
現在、サポートされているイベントは次のとおりです。
SessionOpenedEvent- クライアントセッションが開かれましたDirectoryCreatedEvent- ディレクトリが作成されましたFileWrittenEvent- ファイルが書き込まれたPathMovedEvent- ファイルまたはディレクトリの名前が変更されましたPathRemovedEvent- ファイルまたはディレクトリが削除されましたSessionClosedEvent- クライアントが切断されました
これらはそれぞれ ApacheMinaSftpEvent のサブクラスです。すべてのイベント型を受信するように単一のリスナーを設定できます。各イベントの source プロパティは ServerSession であり、そこからクライアントアドレスなどの情報を取得できます。抽象イベントには、便利な getSession() メソッドが用意されています。
リスナー(Spring Bean でなければなりません)でサーバーを構成するには、単に SftpSubsystemFactory に追加します。
server = SshServer.setUpDefaultServer();
...
SftpSubsystemFactory sftpFactory = new SftpSubsystemFactory();
sftpFactory.addSftpEventListener(apacheMinaSftpEventListenerBean);
...Spring Integration イベントアダプターを使用してこれらのイベントを消費するには:
@Bean
public ApplicationEventListeningMessageProducer eventsAdapter() {
ApplicationEventListeningMessageProducer producer =
new ApplicationEventListeningMessageProducer();
producer.setEventTypes(ApacheMinaSftpEvent.class);
producer.setOutputChannel(eventChannel());
return producer;
}