asyncfileupload - 在服务器上存储文件的最佳方式是按 block 上传吗?

标签 asyncfileupload file-upload chunking

基本上,我正在寻找一种在服务器上存储部分上传内容的最佳方式。文件将逐 block 上传。 block 可能以任意顺序并行出现。我需要将它们以某种形式临时存储在某个地方,然后从上传的 block 中构建完整的文件。我对如何做到这一点有一些想法,但我想知道是否已经有一些最佳实践、标准或某种 RFC ......?

更新:

上传将通过 HTTP 进行。

最佳答案

这个问题之前已经解决过很多次了。使用 BITS、Torrents、FTP 等

基础是:

> session 初始化

>发送文件名、chunk大小、chunk个数、每个chunk的hash

> 收到信号时发送数据 block 。每个 block 以 block 索引号开头

<接收文件名等

< 分配正确名称和大小的空文件

< 分配完成文件(比如 name.status)并且每个 block 有一个 int。这些代表该 block 的完成百分比

< 在所需索引处开始 block 的信号

<< 在接收到每个 block 时,将其保存到正确位置的分配文件中

<< 当每个 block 完成时确认散列。如果错误再次标记为0%

<当接收到所有 block 时,删除 name.status 并解锁分配的文件

一些系统使用大块并将文件名,大小等放在所有 block 的前面,因此 block 是独立的并且可以在不启动 session 的情况下接收

关于asyncfileupload - 在服务器上存储文件的最佳方式是按 block 上传吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132484/

相关文章:

file - 在第 N 次出现分隔符时拆分文件

ajax - 脚本 5 : Access is denied in IE9 for iframe on the same domain

asp.net - 帮助我理解以下与 AsyncFileUpload 控件相关的 javascript

java - Spring MVC 不解析存储在 webroot 之外的图像路径

perl - 在 Mojolicious Controller 单元测试中将文件作为参数传递

java - 在 Google 云端硬盘中下载文件时,文件暂时移动错误

python - 使用 Python-Treetaggerwrapper 进行分块

ajax - Bootstrap Fileinput 在第二次上传时不会再次发送文件

jquery - Spring MVC Portlet + JQuery + Jackson + JSON 响应 - 找不到资源

javascript - 上传多张图片到不同的div