我们需要能够向用户提供大文件。这些文件可以轻松增长到 2 或 3GB。 这些文件不是电影或类似文件。它们是在教育能力中控制和开发机器人所需的软件。
我们的项目组在如何应对这一挑战方面存在一些冲突。首先,Bittorrent对我们来说不是一个解决方案(尽管它可以给我们带来好处)。这些文件将通过HTTP(不是FTP)和文件流提供,因此我们可以控制谁可以访问这些文件。
作为互联网早期的前海盗,我经常与损坏的文件作斗争,并使用文件哈希和文件集来最大限度地减少所需的重新下载量。我提倡一个小应用程序,它下载并验证文件集,并在完全下载和验证后提取大安装文件。
我的同事不认为这是必要的,并指出TCP/IP协议继承了功能以避免损坏的下载。他们还提到Microsoft已经远离了MSDN文件的下载管理器。
损坏的下载是否仍然是一个普遍存在的问题,或者与实际受此问题影响的人数相比,我们花费的时间是否会浪费在创建此问题的解决方案上?
如果下载管理器是要走的路,您会建议我们采取什么方法?
-编辑-只是为了澄清。通过HTTP在一个块中下载3GB的数据是一个问题,还是我们应该制作自己的EXE,以较小的块下载大文件(并验证它们)。
您不需要使用自己的下载管理器。你可以使用一些非常聪明的方法。
-
将文件拆分为较小的块,假设每个块 100MB。因此,即使下载已损坏,用户最终也会使用该特定块进行下载。
-
大多数 Web 服务器都能够理解和处理/提供范围标头。您可以建议用户使用可以使用此容量的下载管理器/浏览器加载项。如果您的用户使用的是 unix/linux 系统,wget 就是这样一个实用程序。
-
TCP/IP确实具有防止损坏的能力,但它基本上假定网络仍然处于正常运行状态并且可以访问。 上面提到的#2可以解决网络在下载过程中完全关闭的问题。
-
最后,向用户提供文件哈希总是好的。这不仅是为了确保下载,也是为了确保您分发的软件的安全性。
呵