2009-12-09 19 views
0

當前正在使用應用程序,它可以幫助您在服務器(由公司自己託管)對計算機中的文件進行備份,以便在任何硬盤驅動器崩潰後恢復數據。我在用戶中實現了單實例功能。具有單實例功能的備份應用程序

單實例:已上傳到服務器的文件將不會再次上傳。每當上傳的確切文件的任何其他實例不會實際上載,而是某些數據庫更改並鏈接到先前上載的相同文件時。

出現問題時相同的文件(即尚未之前上傳)由一個以上的用戶,在啓動文件就不會被檢測同時上傳了一個實例(如數據庫只上傳成功後更新/備用)。一切正在運行,一次。以這種方式實現單個實例的最佳方式是什麼?

我在想,當我讓所有的實例上傳,因爲它是。因此,該文件的多個實例將駐留在服務器上。但是,每當同一文件的另一個備份將被採取後,我將刪除所有以前的實例並將它們與它們連接起來。這不會讓用戶重複上傳,也不會讓一些光盤空間的成本稍微複雜一些(一直到下次上傳相同的文件)。

感謝您的提前想法。

回答

0

在上載之前計算文件的散列(簽名)並將其存儲在數據庫中。 然後 - 開始上傳。 如果在上傳第一個文件的過程中將會標記類似的文件(您將知道b/c已經保存了散列) - 您將保留第二個文件上傳,直到第一個文件成功完成,然後鏈接,如果1st失敗,您可以轉到第二個來源並上傳它。

+0

這裏有條件..第一個文件可以放在無限期暫停,可以從備份中取消。 – Sumeet 2009-12-09 08:35:02

相關問題