2011-02-27 51 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和解锁分配的文件

一些系统使用大块,把文件名,大小等所有块的前面,所以块是独立并且可以在没有会话发起的情况下被接收

相关问题