2011-06-14 27 views
2

我工作的一個項目,該項目將允許大文件(GB +)通過HTTP PUT上傳,我需要實現恢復上傳的方法的最佳途徑。一旦文件被上傳並完成,它就完成並且不能被修改。到目前爲止,我心裏有兩個選擇,但兩者都不合身:如果它不存在或文件建議執行HTTP上傳簡歷

選項1

客戶端發送的文件的初始HEAD請求,這將返回404細節包括與沿着X-Can-Resume或類似的東西線的HTTP X標頭沿電流的大小來指定文件是否可以恢復和Range頭指定哪個字節具有。這看起來不錯,但我不喜歡X標頭,因爲它從HTTP標準中刪除。

選項2

客戶端發送與0字節的Content-Length頭和沒有身體的PUT請求時,服務器可以發送回一個308 Resume Incomplete(如這裏http://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal提出)或202 Accepted報頭以指示是否恢復或從頭開始。除了使用非標準標題外,這似乎也是可以接受的。

上實現這一目標的最佳途徑的任何其他建議?

感謝, Ĵ

回答

0

在這兩種解決方案沒有現有的客戶端和服務器實現,所以我猜你會編寫兩者。我認爲你應該在最簡單的和齒輪提案中描述的內容(順便說一句,你可能知道Gears已經死了)之間找到一個適當的平衡點,並準備在標準出現時做出改變。

如果我要實現這個功能,我想有可能使客戶端在上傳塊,我想補充的全部內容和塊消息摘要。

+0

是的,我會被編碼在客戶端和服務器實現。我知道Gears已經死了,但這是我發現解決問題的最接近的東西。我正在使用簽名來驗證數據,但我不確定是否需要啓動轉移的最佳方式。目前我正朝着選項2的方向前進,但在這一點上我仍然不確定。 – JWood 2011-06-14 16:27:35