2011-12-01 89 views
3

任何人都可以建議我可以在iPhone中使用的最佳框架,方法,庫(在開發中使用,而不是一個準備好的應用程序),以實現文件服務器和iPhone上的本地存儲區之間的同步?iPhone和服務器之間的文件同步

回答

2

我正在爲我的一個應用程序執行此操作,而且我已經實現了該操作,它使用的是Sinatra Web服務器,與MongoDB數據庫交談。您可以使用任何其他數據庫和Web服務器技術。

的基本概念是這樣的:

  1. 每次在數據庫中更新了對象時,時間戳記錄該對象。
  2. 全局更新的時間戳記也會更新。
  3. 該應用程序聯繫網絡服務器並要求更新,傳遞本地存儲的「上次更新」時間戳。
  4. Web服務器通過首先檢查全局時間戳並確保它比應用程序的時間戳更早來處理請求。 (這是爲了避免在數據庫沒有更改時沖刷數據庫,我的模型是:大數據不會頻繁更改,如果數據頻繁更改,則可能沒有對全局時間戳的好處。)
  5. Web服務器然後查找數據庫中時間戳比應用程序時間戳更新的每個對象。
  6. Web服務器將其封裝在JSON對象中,並將其返回給應用程序。

這是所有的RESTful在這個意義上,它是一個無狀態的交易,所以應用程序的實現很簡單(簡單的NSURLRequest,其次是JSON解碼,然後錯誤處理)。現在你有一個更新對象的數組,你可以將它們與本地存儲在應用程序中合併。

這個(無狀態)方法的另一個好處是你可以在Heroku上運行它(免費)。

1

從我可以告訴,有沒有簡單的方法。我正在尋找一個rsync等價物,但我沒有找到一個。

在我的情況下,我手動行走樹,詢問服務器在某個日期後的差異,我記得上次成功的同步日期。

不漂亮。可能會花很多時間想出一些複雜的東西。

+0

我也希望像rsync這樣的東西。 – Cninroh

+2

然後試試這個 - http://stackoverflow.com/questions/5035132/how-to-sync-iphone-core-data-with-web-server-and-then-push-to-other-devices –

+0

Srikar的鏈接另一篇文章非常有幫助。 – Flea

相關問題