【发布时间】:2017-07-19 23:49:25
【问题描述】:
在我的应用程序中,我试图将图像从本地目录上传到亚马逊 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;
}
错误如下:
处理另一个错误时发生错误:
带有消息“方法”的异常“ReflectionException” Aws\S3\S3Client::putObject() 不存在' D:\xampp\htdocs\teespring-testmailer\vendor\yiisoft\yii2\web\ErrorHandler.php:195
【问题讨论】:
-
尝试拨打
PutObject而不是putObject。 -
不会出现同样的错误@SiZE
-
您的供应商和方法中有此类
Aws\S3\S3Client吗?你使用什么版本的库? -
你是默认的..
-
在我使用的所有应用程序中,我只像这样使用..这和这段代码没有什么不同..但是这段代码显示错误..所有参数都是正确的..
标签: php amazon-web-services amazon-s3 yii2