我需要監視遠程服務器上的文件夾,並將使用SFTP添加的新文件複製到Windows上的本地文件夾。是否有SFTP客戶端可以配置和計劃監控遠程文件夾並自動複製文件?或者我是否必須編寫一個Windows服務來使用某些第三方SFTP庫來完成此操作?SFTP:監視遠程文件夾並複製在Windows上使用SFTP添加的新文件
謝謝。
我需要監視遠程服務器上的文件夾,並將使用SFTP添加的新文件複製到Windows上的本地文件夾。是否有SFTP客戶端可以配置和計劃監控遠程文件夾並自動複製文件?或者我是否必須編寫一個Windows服務來使用某些第三方SFTP庫來完成此操作?SFTP:監視遠程文件夾並複製在Windows上使用SFTP添加的新文件
謝謝。
這些文件可以從或SFTP服務器有兩種方式
創建一個自定義的.NET服務來監視SFTP服務器上的文件夾,然後使用第三方SFTP客戶端庫複製的文件被複制。以下是一些可用的庫。
a。 b CodePlex上的開源庫SSH.Net
b。用於.Net的Rebex SFTP
c。終極SSH專家套件.Net
安裝第三方SFTP客戶端能夠監視文件夾和調度任務。以下是一些似乎具有這些功能的客戶端工具
a。 CrushFTP
b。 JaSFtp
做到這一點最簡單的方法是編寫親語法連接到SFTP服務器,並確定新的文件是否都存在服務器上的客戶端程序。程序如何確定是否存在新文件可以通過使用文件名和可選的遠程文件的時間戳來完成。
她的一個明顯的困難是,您不想從正在寫入服務器機器上的磁盤的服務器上下載文件。 (一個大文件可能會出現此問題&您最終可能會下載導致數據損壞的不完整文件)。避免這種情況的一種方法是在一天中的特定時間運行SFTP客戶端,在該時間您確定服務器上的遠程目錄上沒有新文件正在寫入。
要創建自運行客戶端,您可以使用.NET Framework創建一個按所需計劃運行的計時器。或者,您可以簡單地在C#程序中編寫檢測遠程文件的代碼,而不用擔心計時器,並且您可以使用Windows計劃任務功能以特定時間間隔執行生成可執行文件。
由於您尚未提及是否要使用.NET Framework,因此可以使用您選擇的任何編程語言。我會推薦C#或Java使用您選擇的第三方庫。如果您正在尋找商業圖書館,請考慮Ssh Factory for .NET或Secure FTP Factory。文檔可以找到here和here。