2016-07-29 57 views
1

我有一個用於上傳和下載圖像的yii2高級項目。我已經使用ctala/yii2-aws-s3上傳/下載到AWS s3 acccount。它在我的本地機器上工作正常,但它不適用於aws live服務器。我收到以下錯誤,而上傳圖像S3,傳遞給AWS \多部分傳遞給Aws Multipart AbstractUploader :: Aws Multipart {closure}()的參數1必須是異常實例,給出的錯誤實例

參數1 \ AbstractUploader :: AWS \ {多部分關閉}()必須是異常的情況下,錯誤的情況下給出的,稱爲/var/www/html/Exc/vendor/guzzlehttp/promises/src/Promise.php上線203

$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

在適用於PHP的AWS開發工具包中同時發送的HTTP請求是這樣完成的,使用一個單線程,其中使用非阻塞調用來轉發一個或多個HTTP請求,同時響應狀態更改(例如,履行或拒絕承諾)。 看看這個:https://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/promises.html –

+0

我沒有得到這一點。你能再解釋一下嗎? –

回答

1

我看沒有人回答這個問題。經過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)在那裏你會看到你真正的錯誤。

相關問題