【发布时间】:2018-03-23 20:41:02
【问题描述】:
例如,我正在尝试创建一个类似于doesObjectExist() 的方法,但用于多个名为doObjectsExist() 的文件。问题是,如果所有文件都存在,我需要它返回 true,如果只有一个文件不存在,则返回 false。这是我目前的方法。
public function doObjectsExist(...$objects) {
$client = $this->client;
$bucket = $this->bucket;
$commands = [];
foreach ($objects as $key) {
$commands[] = $client->getCommand('HeadObject', [
'Bucket' => $bucket,
'Key' => $key
]);
}
$pool = new CommandPool($client, $commands, [null,
'rejected' => function (AwsException $reason, $iterKey, PromiseInterface $aggregatePromise) {
return false;
}
]);
$promise = $pool->promise();
try {
$promise->wait();
return true;
}
catch (AwsException $e) {
return false;
}
}
【问题讨论】:
标签: php amazon-web-services amazon-s3 aws-sdk aws-php-sdk