Webserver
下載大文件時伺服器報告文件大小不正確
我在通過 sshfs 上傳的 OS X Web 伺服器上有一個大的 tarball 文件。上傳之前我電腦上的文件是 5345834658 字節。複製後的文件在伺服器上是 5345834658 字節,所以一切似乎都正確。如果我將文件複製到伺服器上的另一個位置,它也是 5345834658 字節。
問題是當我嘗試下載文件時。Firefox 對話框顯示“Gzip 存檔 (1.0 GB)”,下載的文件只有 1050867362 字節。如果我使用 curl 下載文件,無論是我的本地機器還是伺服器本身,我都只會得到 1050867362 字節。
我正在考慮配置 Web 伺服器以限制最大文件大小。有沒有辦法解決這個問題?只要有辦法重新組合各個部分,我就可以在伺服器上拆分文件,但我真的希望能夠下載大文件。是否有理由限制最大文件下載大小?
您通過 HTTP 伺服器獲取的文件大小正好是 5345834658 mod 4294967296 的餘數。這意味著 Web 伺服器溢出了一個 32 位整數並使用餘數作為文件大小。
您需要升級到支持大文件 (>4GiB) 的 Web 伺服器。