Php AWS S3执行命令不';好像不行
我正在使用AWS PHP库Php AWS S3执行命令不';好像不行,php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,我正在使用AWS PHP库尝试使用getCommand执行批复制操作。为此,我使用了他们提供的示例 然而,它似乎不起作用,更糟糕的是,它没有抛出任何异常。我正在使用其他AWS服务,它们都会在出错时抛出异常。我想知道我在这里是否做错了什么,或者是否有办法捕捉这些异常 这是我的密码: 准备 for ($i = 1; $i <= 3; $i++) { $batch[] = $s3->getCommand('CopyObject', array( 'Bucket'
尝试使用getCommand
执行批复制操作。为此,我使用了他们提供的示例
然而,它似乎不起作用,更糟糕的是,它没有抛出任何异常。我正在使用其他AWS服务,它们都会在出错时抛出异常。我想知道我在这里是否做错了什么,或者是否有办法捕捉这些异常
这是我的密码:
准备
for ($i = 1; $i <= 3; $i++) {
$batch[] = $s3->getCommand('CopyObject', array(
'Bucket' => $bucket,
'Key' => "{$i}-{$file}",
'CopySource' => "{$bucket}/{$file}"
));
}
try {
// goes here
echo __line__;
$res =$s3->execute($batch);
// not here
echo __line__;
return true;
} catch (\Aws\Exception\AwsException $e) {
// not here
echo __line__;
$this->logger($e->getMessage());
return false;
}
for ($i = 1; $i <= 3; $i++) {
$batch[] = $s3->getCommand('CopyObject', array(
'Bucket' => $bucket,
'Key' => "{$i}-{$file}",
'CopySource' => "{$bucket}/{$file}"
));
}
$results = CommandPool::batch($s3, $batch);
为了捕获异常,我还尝试了:\Guzzle\Service\exception\CommandTransferException$e)
名称空间,但没有得到任何结果。因此,最后我使用AWS库中的CommandPool::batch
函数解决了这个问题
对于有相同问题的人,这里是如何使用它:
准备
for ($i = 1; $i <= 3; $i++) {
$batch[] = $s3->getCommand('CopyObject', array(
'Bucket' => $bucket,
'Key' => "{$i}-{$file}",
'CopySource' => "{$bucket}/{$file}"
));
}
try {
// goes here
echo __line__;
$res =$s3->execute($batch);
// not here
echo __line__;
return true;
} catch (\Aws\Exception\AwsException $e) {
// not here
echo __line__;
$this->logger($e->getMessage());
return false;
}
for ($i = 1; $i <= 3; $i++) {
$batch[] = $s3->getCommand('CopyObject', array(
'Bucket' => $bucket,
'Key' => "{$i}-{$file}",
'CopySource' => "{$bucket}/{$file}"
));
}
$results = CommandPool::batch($s3, $batch);
注意:不要忘记包括CommandPool
名称空间:
use Aws\CommandPool;
最后,我使用AWS库中的CommandPool::batch
函数解决了这个问题
对于有相同问题的人,这里是如何使用它:
准备
for ($i = 1; $i <= 3; $i++) {
$batch[] = $s3->getCommand('CopyObject', array(
'Bucket' => $bucket,
'Key' => "{$i}-{$file}",
'CopySource' => "{$bucket}/{$file}"
));
}
try {
// goes here
echo __line__;
$res =$s3->execute($batch);
// not here
echo __line__;
return true;
} catch (\Aws\Exception\AwsException $e) {
// not here
echo __line__;
$this->logger($e->getMessage());
return false;
}
for ($i = 1; $i <= 3; $i++) {
$batch[] = $s3->getCommand('CopyObject', array(
'Bucket' => $bucket,
'Key' => "{$i}-{$file}",
'CopySource' => "{$bucket}/{$file}"
));
}
$results = CommandPool::batch($s3, $batch);
注意:不要忘记包括CommandPool
名称空间:
use Aws\CommandPool;