AWSSDK - S3 - if_object_exists继续返回传递给Guzzle错误的Argument 2

时间:2014-01-08 03:59:04

标签: php amazon-web-services amazon-s3 file-exists

我有一个带有200万个MP3文件的S3存储桶,有时候客户订购了一个mp3文件但他们无法从我们的S3存储桶下载文件。在我从内容提供商请求重新传递文件之前,我想创建一个简单的脚本,以便检查S3存储桶中是否存在该文件。我写了一个脚本来检查存储桶,但是我一直收到这个错误:

  

可捕获的致命错误:传递给Guzzle \ Service \ Client :: getCommand()的参数2必须是一个数组,字符串给出,在phar:///mnt/universal_portal/prod/download/aws.phar/vendor/中调用第93行的guzzle / guzzle / src / Guzzle / Service / Client.php,在phar:///mnt/universal_portal/prod/download/aws.phar/vendor/guzzle/guzzle/src/Guzzle/Service/Client中定义。第113行的PHP

这是我写的代码

require_once('appsettings.php');
require 'aws.phar';

use Aws\S3\S3Client;

$client = S3Client::factory(array(
   'key'    => $aws_key,
   'secret' => $aws_secret
));

$filename = '000002422704.mp3' . strtolower($aws_key);
$info = $client->if_object_exists($aws_bucket,$filename);

return $info;

我一直在关注此Amazon链接,但我无法让此文件检查工作。

非常感谢任何帮助。

干杯

1 个答案:

答案 0 :(得分:4)

您发布的链接适用于SDK 1.x. Phar文件和您正在使用的实例化是针对SDK 2.x.它们都需要是相同的版本。 :)

您正在SDK 2.x中寻找Aws\S3\S3Client::doesObjectExist()