Php 无法在Amazon S3上上载300 MB的大文件。回应是「;“内部服务器错误”;

Php 无法在Amazon S3上上载300 MB的大文件。回应是「;“内部服务器错误”;,php,amazon-s3,Php,Amazon S3,我试图上传高达300 MB的大文件,但每次我都会收到“内部服务器错误”。我正在使用: try { $uploader = UploadBuilder::newInstance() ->setClient($s3Client) ->setSource($fileloc) ->setBucket($buketname) ->setKey($filename) ->setConcurrency(3) ->setOption('ACL', $fileacl) ->

我试图上传高达300 MB的大文件,但每次我都会收到“内部服务器错误”。我正在使用:

try {
$uploader = UploadBuilder::newInstance()
->setClient($s3Client)
->setSource($fileloc)
->setBucket($buketname)
->setKey($filename)
->setConcurrency(3)
->setOption('ACL', $fileacl)
->setOption('Metadata', array('Agent' => 'aisS3Client'))
->setOption('CacheControl', 'max-age=3600')
->build();
// Perform the upload. Abort the upload if something goes wrong
try {
$uploader->upload();
//echo "File Uploaded : ".$filename;
} catch (MultipartUploadException $e) {
$uploader->abort();
//echo "File Did not Uploaded : ".$filename;
}
} catch (\Aws\S3\Exception\S3Exception $e) {
echo $e->getMessage();
}

我该怎么办

试图一次性上传一个300MB的文件是个坏主意


您可以使用setMultipartUploadSize方法让S3Client将其拆分为块。不过,使用putObject()方法也会更简单,因为它会为您处理这些问题。

如果您尝试上载小于300mb的文件,是否会出现相同的错误?@sergio如果文件大小>160MB,则其工作正常“内部服务器错误”始终是查看错误日志的邀请。在这些代码中,真正的错误消息被写入。询问“内部服务器错误”,因为唯一的错误描述并不针对具体结果。相反,请在服务器和php日志中查找更具体的错误描述。@hakre-它们是如何查看Amazon服务器错误日志的?如果是关于远程系统的,并且如果您手头没有远程系统的日志,则需要通过代理获取日志。对于像Amazon这样的系统,我想这是所有支持资源中的第一个,其次是标准技术支持。可能存在一个请求ID,可以使用该ID请求更多信息(如果错误处理内部服务器错误的情况尚未完全记录)。