我有一个用于上传和下载图片的yii2高级项目。我已经使用 ctala / yii2-aws-s3 上传/下载到AWS s3帐户。它在我的本地机器上工作正常,但它在aws live服务器中不起作用。将图像上传到s3时,我收到以下错误,
参数1传递给Aws \ Multipart \ AbstractUploader :: Aws \ Multipart {closure}()必须是Exception的实例,给出Error的实例,在/ var / www / html / Exc / vendor /中调用第203行的guzzlehttp / promises / src / Promise.php
$imageName = '0fyuh_vidv7notmdnb-fzn4oqlylpqho_italy-hd-wallpapers-22.jpg';
$fileName = Yii::$app->params['uploadedImagePath'].$imageName;
$response = Yii::$app->get('s3bucket')->multipartUpload(
"uploaded_images/$imageName",
$fileName,
$concurrency,
$minPartSize
);
这个问题有什么解决方案吗?
提前致谢。
答案 0 :(得分:2)
我看到没有人回答这个问题。经过5个小时的调试,我找到了解决这个问题的方法。这里缺少一些php的扩展。我有问题从php7 debian jessie迁移到CentOS,因为CentOS没有预装一些扩展我有这个错误。
我的问题是我缺少php7的simplexml。这真的很难调试,因为aws-swk期望Exception的实例,但是guzzle正在传递Error对象的实例。
您应该做的是转到Aws\Multipare\AbstractUploadManager
课程到第132行并将otherwise(function (\Exception $e)
更改为
otherwise(function ($e)
你应该看到真正的错误。