簡體   English   中英

方法Aws \\ S3 \\ S3Client :: putObject()不存在

[英]Method Aws\S3\S3Client::putObject() does not exist

在我的應用程序中,我試圖將圖像從首先上傳的本地目錄上傳到Amazon S3存儲桶。當我上傳文件時,我遇到了錯誤。我不知道要更改什么。更改或添加供應商? 請幫忙。

控制器:

$s = new Storage();
$result = $s->upload($bucket,$keyname,$filepath);

型號\\ Storage.php:

<?php
namespace app\models;
use Yii;
use yii\base\Model;

class Storage extends Model
{

  private $aws;
  private $s3;

   function __construct() {
     $this->aws = Yii::$app->awssdk->getAwsSdk();
     $this->s3 = $this->aws->createS3();
  }

    public function upload($bucket,$keyname,$filepath) {
        $result = $this->s3->putObject(array(
        'Bucket'       => $bucket,
        'Key'          => $keyname,
        'SourceFile'   => $filepath,
        'ContentType'  => 'text/plain',
        'ACL'          => 'public-read',
        'StorageClass' => 'REDUCED_REDUNDANCY',
        'Metadata'     => array(
            'param1' => 'value 1',
            'param2' => 'value 2'
        )
    ));
    return $result;

    }

錯誤如下:

處理另一個錯誤時發生錯誤:

D:\\ xampp \\ htdocs \\ teespring-testmailer \\ vendor \\ yiisoft \\ yii2 \\ web \\ ErrorHandler.php:195中的消息``方法Aws \\ S3 \\ S3Client :: putObject()不存在''的異常'ReflectionException'

我在config \\ web.php中輸入了錯誤的區域名稱, 就是問題所在。我更改了區域然后運行良好。

'awssdk' => [
            'class' => 'fedemotta\awssdk\AwsSdk',
            'credentials' => [ //you can use a different method to grant access
                'key' => 'XXXXXXXXXXXXXXXXX',
                'secret' => 'XXXXXXXXXXXXXXXXXXXXX',
            ],
            'region' => 'us-west-2', //before 'us-east-1'
            'version' => 'latest', 
        ],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM