下载大文件时服务器报告错误的文件大小

下载大文件时服务器报告错误的文件大小

我在 OS X Web 服务器上有一个通过 sshfs 上传的大型 tarball 文件。上传之前我电脑上的文件大小为 5345834658 字节。复制后的文件在服务器上的大小为 5345834658 字节,因此一切似乎都正确。如果我将文件复制到服务器上的另一个位置,它也是 5345834658 字节。

问题是当我尝试下载文件时。 Firefox 对话框显示“Gzip archive (1.0 GB)”,下载的文件只有 1050867362 字节。如果我使用curl 下载文件,无论是我的本地计算机还是服务器本身,我只获得1050867362 字节。

我正在考虑有关 Web 服务器的配置,以限制最大文件大小。有办法解决这个问题吗?只要有办法重新组合各个部分,我就可以在服务器上拆分文件,但我真的希望能够下载大文件。是否有理由限制最大文件下载大小?

答案1

您通过 HTTP 服务器获取的文件大小恰好是 5345834658 mod 4294967296 的余数。这意味着 Web 服务器溢出了 32 位整数,并使用余数作为文件大小。

您需要升级到支持大文件 (>4GiB) 的 Web 服务器。

相关内容