2016-03-01 34 views
2

我一直致力於Android上的文件上傳,發現HTTP和FTP都可以進行文件上傳,但HTTP本身是由Android支持的,但FTP是通過Apache commons library,也發現了這兩個都有自己的優點和缺點而不是在移動的角度方面,由於在手機網絡中斷是很常見的,哪個文件上傳協議(FTP/HTTP)適合具有高度不可靠網絡的移動設備

所以我的問題

1)我應該堅持的HTTP多部分文件上傳不管在手機還是蠻好用的FTP

2)服務器的FTP存儲庫,我還可以使用HTTP上傳沒有問題

3)不使用FTP上傳多,就像HTTP或如何處理網絡問題時,有經常休息

+0

人們仍然使用FTP?這是2016年,最後我檢查了一下,FTP非常不安全。 – CommonsWare

+0

不幸的是,D:一些傳統的服務器拒絕遷移,迫使我們站在它後面 – Ujju

回答

2

1)我應該堅持的HTTP多部分文件上傳不管在手機或者是罰款在任何網絡使用FTP

由於設計FTP一個非常不錯的選擇的是哪個使用私有IPv4地址 - 由於IPv4地址短缺,可能是大多數移動網絡的情況。雖然它可能在一個網絡內工作,但它不會在另一個網絡內工作,並且如果您嘗試將FTP與SSL結合以確保傳輸安全,則會變得更糟。

HTTP和HTTPS反而通常沒有問題。通過使用Range請求,您還可以下載部分文件,這在恢復破碎的下載或僅加載文檔的必要部分(如大型PDF文件的部分)時非常重要。 FTP具有有限的恢復能力,但不如HTTP範圍請求有用。

至於恢復上傳FTP有REST(重新啓動)命令。但是,您需要先了解在服務器上接收了多少數據,以便知道重新啓動的位置。 HTTP沒有內置的恢復上傳。您可以在POST或PUT請求中使用Content-Range標頭,但您的服務器需要了解如何處理此標頭。或者您可以將上傳分散到多個請求中,這些請求又需要特殊的服務器端代碼才能在服務器上重建原始文件。

這兩種協議的開銷大致相同,對於除非常小的文件以外的任何內容都可以忽略。

2)我的服務器FTP存儲庫,我仍然可以使用HTTP如果您的服務器沒有HTTP接口,那麼你就不能使用HTTP沒有問題上傳

。但只是對「FTP存儲庫」的描述沒有提供足夠的信息來介紹它可以被訪問的方式。

3)是否FTP使用多上傳就像HTTP或如何處理網絡問題時,有經常休息

如果它打破你需要找出與上傳重啓(遠程檢查長度),然後使用REST命令。

+0

感謝您的詳細解釋,清除我的大部分疑問,將有一個服務器端看看 – Ujju

+0

創建http接口,之前只有2個用於FTP存儲的參數認證 – Ujju

2

錯誤的問題。客戶端操作系統無關緊要,不應該成爲決定您的技術的因素。有兩個庫。兩者都有優點,選擇適合您的用例的優點。這可能是你應該問的。

至於問題2-否。 FTP和HTTP是不同的協議。你使用其他的。您通常可以在瀏覽器中查看FTP,因爲瀏覽器可以實現這兩種協議。使用HTTP與FTP服務器交談不會起作用。

+0

正如你所知,android刪除了apache客戶端,保持效率的頭腦,也沒有談論FTP協議的任何文件中的文件上傳,所以可以假定操作系統給予用戶更可靠的優先選擇,至於我的用例最適合當網絡問題很多時 – Ujju

+0

@UJju:「android刪除apache客戶端記住效率」 - 恩,沒有。谷歌刪除了HttpClient,因爲他們無法繼續維護它,同時保持二進制兼容性。歡迎您使用Apache的Android獨立包裝HttpClient庫。 「可以假設操作系統給予用戶更可靠的優先選擇」 - 我根本不會做出這樣的假設。谷歌有限的開發人員,Android設備有小型ROM來幫助降低價格。因此,並非所有的東西都可以融入到Android中。 HTTP更受歡迎。 – CommonsWare

+0

@CommonsWare,哦tq,得到了你的點 – Ujju

1

這取決於你想要的帶寬和可靠性;),所以也許所有的智能手機操作系統有相同的答案:

  • FTP使用更多的帶寬,具有更可靠的文件傳輸,需要一個FTP服務器。
  • HTTP可以使用更少的帶寬,並且可以使用更低效的壓縮,具有更低的可靠性,需要HTTP服務器和服務器頁面來實現上傳邏輯。

它們都可用於Android,因此您的選擇取決於評估這些因素。

+0

我知道diff的,但像你說的帶寬和可靠性是關注移動,。如果FTP似乎更可靠基於你的答案,這不是 – Ujju

+0

我非常懷疑HTTP使用較少的帶寬。你有這個索賠的來源嗎? –

+0

@SteffenUllrich http://stackoverflow.com/questions/717200/comparing-http-and-ftp-for-transferring-files以及google上的其他許多人 –