有没有支持分割成多个部分并且可以在 MS Windows 上本地解压的存档文件格式?

Is there an archive file format that supports being split in multiple parts and can be unpacked natively on MS Windows?

一些存档文件格式,例如ZIP(参见https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT中的第8节),支持分割成有限大小的多个部分。 ZIP 文件可以在最近版本的 Microsoft Windows 上原生打开,但似乎 Windows 无法原生打开拆分的 ZIP 文件,只能使用 7-Zip 等特殊工具。我想在我正在编写的网络应用程序中使用这个“拆分存档”功能,其中创建的存档应该由大量“普通”计算机用户打开,所以我的问题是:是否有存档文件格式(如 ZIP),支持拆分成多个部分,无需在最新版本的 Microsoft Windows 上安装额外软件即可解压?理想情况下,在其他广泛使用的操作系统上也是如此。

背景: 我的最终目标是将在多个 Web 服务器上拆分的目录结构导出到单个本地目录树。我目前的想法是让每个 Web 服务器生成拆分存档的一部分,将它们全部作为某种 Javascript 多文件下载提供,然后在用户计算机上拥有一个存档(分为多个部分)需要拆包。这个最终目标的另一个想法是使用 Javascript 的文件系统访问 API (https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API),但它在 Firefox 上不受支持,这是一个阻碍。

CAB archives 有点满足这个目的(例如参见 [​​=11=],它说通过它,archives 甚至可以直接从 HTTP(S)/FTP服务器)。由于该库依赖于 .NET,它甚至可以在 Linux 到 Mono/Wine 上使用,如果您的服务器不是 运行 Windows...因为存档必须在服务器上创建,对吧?

你的主要问题是无法在多个服务器上并行创建拆分存档,至少因为 LZx 的字典。每个服务器都应该创建整个档案集并只发送它应该发送的档案,并且您没有 ANY 保证所有这些档案集在每个服务器上都是相同的。

最好的方法可能是在 ONE 服务器上创建整个存档,然后通过 replication-like界面.

否则,您也可以制作仅包含目录树子集的单独存档(您必须跨服务器对文件进行分区),但它不会满足您的要求,因为它将是个人档案,而不是一个大的分裂档案。

可能需要一些精度:

  • 您绝对需要一个除了浏览器之外没有任何客户端的系统吗?或者您可以使用其他协议,只要它们本机存在于 Windows 上(例如 FTP / 现在默认提供的 SSH 客户端)?
  • 这个请求背后的真正目的是什么?在所有服务器上分配负载?或者在传输失败的情况下避免下载太大的单个文件(即 30 GB 存档)?还是两者兼而有之?
  • 如果文件大小有问题,为什么不依赖恢复下载呢?