无法通过PHP表单将1GB文件上传到AmazonS3


Cannot upload 1GB file to Amazon S3 via PHP Form

我有一个PHP表单,它在提交时接受选定的zip文件,并使用AJAX发布到AmazonS3存储桶。当我测试10MB或更少的zip文件时,这个过程会很好,但当我测试超过500MB的文件时,我会得到以下错误:

Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed.

我需要能够允许上传多达5GB的zip文件。在这一点上,我需要更好地了解我需要做什么来允许用户上传大文件。非常感谢您的帮助。

附言:我很乐意添加代码片段,但我希望得到一个回复来显示必要的片段,而不是发布一堆无关的代码。

如果我记得很清楚,也许你应该增加php.ini文件中的post_max_size变量(或使用ini_set()),默认情况下设置为10MB。你还应该看看upload_max_filesize变量和max_execution_time,因为我想上传5GB需要很长时间。。。

如果您的问题与JQuery/Ajax有关,那么您可能应该考虑使用FormData对象。

使用jQuery.ajax 发送多部分/表单数据

https://developer.mozilla.org/en-US/docs/Web/API/FormData

好吧,最后我不得不使用AmazonSDK来分块大文件。这样可以将文件分解为多个部分,从而防止服务器超时。