2011-02-27 53 views
3

基本上我正在尋找一種在服務器上存儲部分上傳文件的最佳方法。文件將按塊大塊上傳。塊可能會以任意順序並行進行。我需要暫時以某種形式將它們存儲在某處,然後從上傳的塊中構建完整的文件。我已經對如何做到這一點有了一些想法,但我想知道是否已經有一些最佳實踐,或標準或某種類型的RFC。?在服務器上存儲文件的最佳方式是通過塊上傳文件嗎?

UPDATE:

上傳將通過HTTP發生。

+0

問題取決於具體的協議細節。你的情況類似於TCP碎片/重組過程,並且有很多實現差異。什麼是底層協議?它可靠嗎?該協議是否在最後給出塊的位置(因爲它們可能是任意的,它必須有可能獲得位置信息)?那麼重複的塊呢?如果重複,哪一個會被接受? – Serkan 2011-02-27 09:57:42

+0

我認爲你之前發佈你的問題谷歌幫助every1。你能告訴我們你到現在爲止所嘗試過的嗎? – Baz1nga 2011-02-27 09:58:11

回答

2

此問題已被多次解決。使用BITS,山洪,FTP等

基本要點有:

>會話初始化

>發送文件名,塊大小,塊數,每塊的哈希

>發送塊( s)發信號時。每塊有塊索引號開始

<收到文件名等

<分配正確的名稱和大小的空文件

<分配完成的文件(比如說name.status),並有每塊一個int值。這些代表完成百分比該塊的

<信號在所需指標

< <其被接收每個塊開始塊,保存到分配的文件在正確的位置

< <當每個塊完成確認哈希。如果錯誤標記爲再次0%

<當所有的塊接收刪除name.status和解鎖分配的文件

一些系統使用大塊,把文件名,大小等所有塊的前面,所以塊是獨立並且可以在沒有會話發起的情況下被接收

相關問題