Amazon S3 - deleteObjects() - “guzzle”错误?

时间:2014-01-06 07:55:32

标签: php amazon-s3

这是我正在使用的简化但准确的代码。

$client = S3Client::factory(array('key'=>$ak,'secret'=>$sk));

foreach(range(1,10) as $i) $temp[] = array('Key'=>$i);

$result = $client->deleteObjects(array('Bucket'=>'bucket','Objects'=>$temp));

return $result;

一切正常,它会根据请求删除对象,但会从phar文件中抛出所有这些错误。在本地运行,如下所示。

Fatal error: Uncaught exception 'Guzzle\Http\Exception\CurlException' with message '[curl] 56: Problem (2) in the Chunked-Encoded data [url] https://bucket.s3.amazonaws.com?delete=' in phar://C:/wamp/www/bucket/local/aws.phar/Aws/Common/Client/AbstractClient.php on line 285

Guzzle\Http\Exception\CurlException: [curl] 56: Problem (2) in the Chunked-Encoded data [url] https://bucket.s3.amazonaws.com?delete= in phar://C:/wamp/www/bucket/local/aws.phar/Guzzle/Http/Curl/CurlMulti.php on line 365

Aws\Common\Exception\TransferException: [curl] 56: Problem (2) in the Chunked-Encoded data [url] https://bucket.s3.amazonaws.com?delete= in phar://C:/wamp/www/bucket/local/aws.phar/Aws/Common/Client/AbstractClient.php on line 285

3 个答案:

答案 0 :(得分:2)

我在Windows 7 x64上运行WampServer时遇到此问题。通过愚蠢的运气,我偶然发现了解决方案。

只需将'scheme' => 'http'添加到出厂配置设置即可开始工作!

答案 1 :(得分:1)

我意识到这一点已经很晚了,但是对此的搜索返回的很少,希望这可能有助于其他人。

我在尝试删除对象,WAMPSERVER(64位和PHP 5.4)2.4,Windows 7 x64时也遇到此错误。我觉得这个版本的WAMP中的Curl扩展有问题。我安装了WAMPSERVER(32BITS& PHP 5.4)2.4并且对deleteObjects没有任何问题。

答案 2 :(得分:0)

可能的解决方案是添加

'curl.options' => array('CURLOPT_HTTP_VERSION'=>'CURL_HTTP_VERSION_1_0')

到S3Client :: factory options。

没有提到卷曲错误,但现在我有时会收到Simple XML错误:“实体:第2行:解析器错误:文档末尾的额外内容”。