创建一个数组,说它是一个对象?(S3)



创建如下数组:

private $commands = [];

然后添加到这个数组中:

$this->commands[] = $this->s3->getCommand('PutObject', [
        'Bucket' => xxx,
        'Key' => xxx,
        'Body' => xxx,
        'ContentType' => xxx,
        'ACL' => 'public-read'
    ]);

但是当我尝试使用数组时:

$pool = $this->s3->commandPool($this->s3, $this->commands);

我得到错误:

Argument 2 passed to AwsAwsClient::getCommand() must be of the type array, object given, 

它在抱怨一个对象,并且需要一个数组。

我创建的数组是错误的吗?

(我使用php 5.4所以数组[]是好的)

您正在错误地使用commandPool。没有这样的方法,当你调用一个未定义的方法AwsClient假设你试图发送一个命令和调用getCommand()内部-这就是为什么你得到错误。

正确的做法是:

//at the top of your file
use AwsCommandPool;
//and then
$pool = new CommandPool($this->s3, $this->commands);

相关内容

  • 没有找到相关文章

最新更新