リモートサーバー上のフォルダーを監視し、SFTPを使用して追加された新しいファイルをWindowsのローカルフォルダーにコピーする必要があります。リモートフォルダを監視し、ファイルを自動的にコピーするように構成およびスケジュールできるSFTPクライアントはありますか?または、サードパーティのSFTPライブラリを使用してこれを実現するためにWindowsサービスを作成する必要がありますか?
ありがとうございました。
リモートサーバー上のフォルダーを監視し、SFTPを使用して追加された新しいファイルをWindowsのローカルフォルダーにコピーする必要があります。リモートフォルダを監視し、ファイルを自動的にコピーするように構成およびスケジュールできるSFTPクライアントはありますか?または、サードパーティのSFTPライブラリを使用してこれを実現するためにWindowsサービスを作成する必要がありますか?
ありがとうございました。
ファイルは、2つの方法でSFTPサーバーとの間でコピーできます。
カスタム.netサービスを作成して、SFTPサーバー上のフォルダーを監視し、サードパーティのSFTPクライアントライブラリを使用してファイルをコピーします。以下は、利用可能なライブラリの一部です。
a。CodePlexでソースライブラリSSH.Netを開きます
b。Rebex SFTP for.Netc
。.Net用のUltimateSSHExpertパッケージ
フォルダを監視し、タスクをスケジュールできるサードパーティのSFTPクライアントをインストールします。以下は、これらの機能を備えていると思われるクライアントツールの一部です。
a。CrushFTP
b。JaSFtp
これを実現する最も簡単な方法は、SFTPサーバーにプログラムで接続し、サーバーに新しいファイルが存在するかどうかを判断するクライアントプログラムを作成することです。プログラムが新しいファイルが存在するかどうかを判断する方法は、ファイル名とオプションでリモートファイルのタイムスタンプを使用して実行できます。
彼女の明らかな難しさは、サーバーマシン自体のディスクに書き込まれている途中のファイルをサーバーからダウンロードしたくないということです。(大きなファイルはこの問題を引き起こす可能性があり、不完全なファイルをダウンロードしてデータが破損する可能性があります)。これを回避する1つの方法は、サーバーのリモートディレクトリに新しいファイルが書き込まれていないことが確実な特定の時刻にSFTPクライアントを実行することです。
自己実行型クライアントを作成するには、.NET Frameworkを使用して、必要なスケジュールで実行されるタイマーを作成できます。または、タイマーを気にせずにC#プログラムでリモートファイルを検出するコードを記述し、Windowsのスケジュールされたタスク機能を使用して特定の時間間隔で実行可能ファイルを実行することもできます。
.NET Frameworkを使用するかどうかについては言及していないため、任意のプログラミング言語を使用できます。選択したサードパーティライブラリを使用して、C#またはJavaのいずれかをお勧めします。商用ライブラリをお探しの場合は、Ssh Factoryfor.NETまたはSecureFTPFactoryを検討してください。ドキュメントはこことここにあります。