Из документов есть два поддерживаемых способа загрузки файла:
Передайте строку, чтобы указать путь к файлу, в котором будет храниться содержимое тела ответа:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Передайте ресурс, возвращенный из fopen (), чтобы записать ответ в поток PHP:
$resource = fopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Третий вариант, использующий 'save_to'
- устарел :
Передайте объект Psr \ Http \ Message \ StreamInterface для потоковой передачи тела ответа в открытый поток PSR-7.
$resource = fopen('/path/to/file', 'w');
$stream = GuzzleHttp\Psr7\stream_for($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Узнайте больше о Guzzle Sink .