2016-03-04 89 views
0

我想使用FileSystemWatcher立即將新生成的文件推送到雲中。使用FileSystemWatcher備份文件

我擔心的是,如果正在關注的應用程序關閉了一段時間,那麼它將會丟失一些文件,並且他們將永遠不會進行備份。

反正有這個嗎?或者我應該使用消息隊列?

回答

0

你可以有兩個FileSystemWatchers進程。 1.第一個觀看傳入文件位置,並將文件從傳入位置移動(不是複製)到傳出位置。 2.第二個觀看傳出位置並將文件推送到雲端。

除了FileSystemWatchers,該進程還會在啓動時掃描傳入位置。這樣,如果它停機並添加了新文件,那麼當它重新啓動時,這些新文件仍然會移動到傳出位置。在這個過程中,沒有任何東西可以轉移到離開的位置,所以沒有什麼可以錯過。

更新 我想這也取決於文件的性質。如果您需要更高的可靠性,那麼您可以構建一個更強大的過程,捕獲位置中任何文件的詳細信息,並排列要複製的文件列表(可能在表格中)。這樣,您不必依靠存在或不存在文件以確定狀態。

+0

這是個聰明的主意 - 它使用文件的位置作爲狀態。儘管按需備份的麻煩在於,您無法確定整體備份是否正確 - 您必須希望該機制能夠完美地工作。所以我正在創建一個文件同步器。 (AWS提供了一個,但它不會執行加密。)我認爲最終的做法是每個文件按需進行備份,然後每天進行一次同步以檢查一切正確。 –

+0

我收回,aws s3同步具有加密作爲選項。 –