基本上我正在寻找一种在服务器上存储部分上传的最佳方法。文件将逐块上传。块可以以任意顺序并行出现。我需要以某种形式将它们临时存储在某个地方,然后从上传的块中构建完整的文件。我对如何做到这一点有一些想法,但我想知道是否已经有一些最佳实践、标准或某种 RFC ......?
更新:
上传将通过 HTTP 进行。
基本上我正在寻找一种在服务器上存储部分上传的最佳方法。文件将逐块上传。块可以以任意顺序并行出现。我需要以某种形式将它们临时存储在某个地方,然后从上传的块中构建完整的文件。我对如何做到这一点有一些想法,但我想知道是否已经有一些最佳实践、标准或某种 RFC ......?
更新:
上传将通过 HTTP 进行。
这个问题之前已经解决过很多次了。使用 BITS、Torrent、FTP 等
基本情况是:
> 会话初始化
> 发送文件名、块大小、块数、每个块的哈希
> 发出信号时发送块。每个块都以块索引号开头
< 接收文件名等
<分配正确名称和大小的空文件
< 分配完成文件(比如 name.status)并且每个块有一个 int。这些代表该块的完成百分比
< 在所需索引处开始块的信号
<< 在接收到每个块时,将其保存到正确位置的分配文件中
<< 随着每个块完成确认哈希。如果错误再次标记为 0%
< 当收到所有块时,删除 name.status 并解锁分配的文件
一些系统使用大块并将文件名,大小等放在所有块的前面,因此块是独立的,可以在没有会话启动的情况下接收