3
基本上我正在尋找一種在服務器上存儲部分上傳文件的最佳方法。文件將按塊大塊上傳。塊可能會以任意順序並行進行。我需要暫時以某種形式將它們存儲在某處,然後從上傳的塊中構建完整的文件。我已經對如何做到這一點有了一些想法,但我想知道是否已經有一些最佳實踐,或標準或某種類型的RFC。?在服務器上存儲文件的最佳方式是通過塊上傳文件嗎?
UPDATE:
上傳將通過HTTP發生。
基本上我正在尋找一種在服務器上存儲部分上傳文件的最佳方法。文件將按塊大塊上傳。塊可能會以任意順序並行進行。我需要暫時以某種形式將它們存儲在某處,然後從上傳的塊中構建完整的文件。我已經對如何做到這一點有了一些想法,但我想知道是否已經有一些最佳實踐,或標準或某種類型的RFC。?在服務器上存儲文件的最佳方式是通過塊上傳文件嗎?
UPDATE:
上傳將通過HTTP發生。
此問題已被多次解決。使用BITS,山洪,FTP等
基本要點有:
>會話初始化
>發送文件名,塊大小,塊數,每塊的哈希
>發送塊( s)發信號時。每塊有塊索引號開始
<收到文件名等
<分配正確的名稱和大小的空文件
<分配完成的文件(比如說name.status),並有每塊一個int值。這些代表完成百分比該塊的
<信號在所需指標
< <其被接收每個塊開始塊,保存到分配的文件在正確的位置
< <當每個塊完成確認哈希。如果錯誤標記爲再次0%
<當所有的塊接收刪除name.status和解鎖分配的文件
一些系統使用大塊,把文件名,大小等所有塊的前面,所以塊是獨立並且可以在沒有會話發起的情況下被接收
問題取決於具體的協議細節。你的情況類似於TCP碎片/重組過程,並且有很多實現差異。什麼是底層協議?它可靠嗎?該協議是否在最後給出塊的位置(因爲它們可能是任意的,它必須有可能獲得位置信息)?那麼重複的塊呢?如果重複,哪一個會被接受? – Serkan 2011-02-27 09:57:42
我認爲你之前發佈你的問題谷歌幫助every1。你能告訴我們你到現在爲止所嘗試過的嗎? – Baz1nga 2011-02-27 09:58:11