当从github下载存档时,Guzzle存储两个zip文件副本

时间:2015-02-26 19:47:09

标签: php github guzzle

我有一个非常简单的guzzle请求给github下载一个zip存档:

$client = new \Guzzle\Http\Client();
$response
  = $client->get("https://github.com/xxxxx/{$name}/zipball/master")
  ->setResponseBody($file)
  ->send();

问题是$ file似乎最终包含两(2)份档案副本,即它的大小正好是运行

的两倍。
wget https://github.com/xxxxx/{$name}/zipball/master

当然解压缩guzzle版本时会解压缩。我是否在guzzle API中缺少某些东西,可能是由于重定向?

这是guzzle 3.9.2(2014-09-10),Linux,PHP 5.6.6(cli)(建于2015年2月19日13:46:39)

1 个答案:

答案 0 :(得分:0)

我刚开始使用Guzzle而我可能错了,但是......

似乎$ client-> get正在获取zip的副本,然后您正在获取该副本,并将其作为响应主体发送回去(因此将第一个副本添加到第二个副本的末尾) ),然后你发送请求。

如果您只想下载该zip文件的副本,那么只需执行以下操作:

$client = new Client();
$response = $client->get('https://github.com/xxxxx/{$name}/zipball/master')->getBody();
file_put_contents("{$name}-master.zip", $response);