2012-12-13 66 views
1

我寫了一個python應用程序,它通過套接字將文件傳輸到服務器。它始終有效,但我的問題是:是通過套接字將文件從桌面客戶端傳輸到服務器的好方法嗎?舉例來說,Google Drive或Dropbox桌面客戶端如何同步文件(就像我知道GD客戶端已經存在的文件只發送更改,比如rsync一樣),但是新文件又如何呢?Python文件傳輸

回答

0

客戶端通常通過HTTP-POST上傳文件。這甚至適用於客戶端僅發送更改時。 Here's關於如何使用Python發佈文件的例子。

使用套接字的唯一好處是服務器異步聯繫客戶端,例如,以便它可以通知客戶端它應該下載的文件,如DropBox等。

+0

感謝您的回覆,但是我可以使用POST恢復或暫停上傳嗎? – Sever

+0

好的問題是,我熟悉的所有Python庫都旨在使上傳變得簡單,並且不提供暫停/恢復功能。因此,您必須自己實施POST,方法是將暫停/恢復添加到您最喜歡的圖書館源代碼中。 –

1

你可能會考慮將文件打包成洪流,然後以這種方式傳輸。種子有很多錯誤恢復。例如,許多大公司,例如暴雪,都使用種子爲用戶提供內容。

你仍然需要一種方法來轉移過程的洪流信息

見Python包libtorrentopentracker

我也做與socket文件傳輸服務器軟件,這是好的,如果互聯網連接不中斷,並且您不想並行流式傳輸。