0

我们需要能够向我们的用户提供大文件。这些文件可以轻松增长到 2 或 3GB。这些文件不是电影或类似文件。它们是控制和开发具有教育能力的机器人所需的软件。

我们的项目组在如何应对这一挑战方面存在一些冲突。首先,Bittorrent 不是我们的解决方案(尽管它可以给我们带来好处)。这些文件将通过 HTTP(而不是 FTP)和文件流提供,因此我们可以控制谁可以访问这些文件。

作为互联网早期的前海盗,我经常与损坏的文件作斗争,并使用文件哈希和文件集来最大限度地减少所需的重新下载量。我提倡一个小型应用程序,它可以下载和验证文件集,并在完全下载和验证后提取大安装文件。

我的同事不认为这是必要的,并指出 TCP/IP 协议继承了避免损坏下载的能力。他们还提到微软已经放弃了他们的 MSDN 文件的下载管理器。

与实际受其影响的人数相比,损坏的下载仍然是一个普遍的问题,还是会浪费我们为解决该问题而花费的时间?

如果下载管理器是要走的路,你建议我们采取什么方法?

-edit- 只是为了澄清。在一个块中下载 3GB 的数据,通过 HTTP 是一个问题,还是我们应该制作自己的 EXE,以较小的块下载大文件(并验证它们)。

4

1 回答 1

1

您无需使用自己的下载管理器。你可以使用一些非常聪明的方法。

  1. 将文件分成更小的块,假设每个 100MB。因此,即使下载损坏,用户最终也会使用该特定块进行下载。

  2. 大多数 Web 服务器都能够理解和处理/服务范围标头。您可以推荐用户使用可以使用此容量的下载管理器/浏览器插件。如果您的用户使用的是 unix/linux 系统,那么 wget 就是这样一个实用程序。

  3. TCP/IP 确实具有防止损坏的能力,但它基本上假设网络仍然正常且可访问。上面提到的#2 可能是解决下载过程中网络完全中断的问题的一种可能的解决方法。

  4. 最后,向您的用户提供文件哈希总是好的。这不仅是为了确保下载,也是为了确保您分发的软件的安全性。

高温高压

于 2013-01-31T13:17:21.883 回答