创建如下数组:
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);