导致致命错误的AWS S3 PHP getObject标准示例

导致致命错误的AWS S3 PHP getObject标准示例,php,amazon-web-services,amazon-s3,fatal-error,method-call,Php,Amazon Web Services,Amazon S3,Fatal Error,Method Call,我有一些代码看起来就像这样: $result = $client->getObject(array( 'Bucket' => $bucket, 'Key' => 'data.txt', 'SaveAs' => '/tmp/data.txt' )); 这是此处列出的示例之一: 不幸的是,我遇到了这个致命错误: PHP Warning: Missing argument 2 for AmazonS3::get_object() in /var/ww

我有一些代码看起来就像这样:

$result = $client->getObject(array(
   'Bucket' => $bucket,
   'Key'    => 'data.txt',
   'SaveAs' => '/tmp/data.txt'
));
这是此处列出的示例之一:

不幸的是,我遇到了这个致命错误:

PHP Warning:  Missing argument 2 for AmazonS3::get_object() in /var/www/CronJobs/aws-sdk-    for-php/services/s3.class.php on line 1489
PHP Notice:  Undefined variable: filename in /var/www/CronJobs/aws-sdk-for-php/services/s3.class.php on line 1495
PHP Warning:  preg_match() expects parameter 2 to be string, array given in /var/www/CronJobs/aws-sdk-for-php/services/s3.class.php on line 1042
PHP Warning:  preg_match() expects parameter 2 to be string, array given in /var/www/CronJobs/aws-sdk-for-php/services/s3.class.php on line 1043
PHP Notice:  Array to string conversion in /var/www/CronJobs/aws-sdk-for-php/services/s3.class.php on line 548
PHP Fatal error:  Uncaught exception 'S3_Exception' with message 'S3 does not support "Array" as a valid bucket name. Review "Bucket Restrictions and Limitations" in the S3 Developer Guide for more information.' in /var/www/CronJobs/aws-sdk-for-php/services/s3.class.php:548
Stack trace:
0 /var/www/CronJobs/aws-sdk-for-php/services/s3.class.php(1530): AmazonS3->authenticate(Array, Array)
1 [internal function]: AmazonS3->get_object(Array)
2 /var/www/CronJobs/aws-sdk-for-php/sdk.class.php(436): call_user_func_array(Array, Array)
3 /var/www/CronJobs/leefomatic/index.php(70): CFRuntime->__call('getObject', Array)
4 /var/www/CronJobs/leefomatic/index.php(70): AmazonS3->getObject(Array)
5 {main}
thrown in /var/www/CronJobs/aws-sdk-for-php/services/s3.class.php on line 548
在我的脚本中,我当前是listObject,复制对象和删除选项都很好。有没有想过为什么getObject会出现致命错误


谢谢。

看起来您正在将文档与代码一起使用。显示的错误块中输出的文件名(例如,
s3.class.php
sdk.class.php
)明确表示您正在使用sdk1.x代码。您需要安装更新的、受支持更好的SDK 2.x(),或者使用。

您的bucket名称是什么?您正在使用最新的aws php sdk吗?为什么bucket名称很重要?我使用的是aws sdk php 2,这里是我的确切语法:$result=$s3->getObject(数组('Bucket'=>'lief4000videobucket','Key'=>$file,'SaveAs'=>'/tmp/'.$file));在我调用getObject之前,我使用了var_dump($file),它以字符串的形式显示出来。你能回显$file吗?因此,我们知道您的变量的文件名是正确的。错误日志会告诉您出了什么问题。
'S3不支持将“Array”作为有效的bucket名称。
我已回显了$file和var_dump($file),它是该bucket中存在的对象的字符串。