Guzzle 6 Fortschritt des Downloads

Ich möchte eine große Datei mit Guzzle herunterladen und den Fortschritt verfolgen. Ich weiß nicht, ob ich einen Stream übergeben oder den RequestMediator irgendwie verwenden muss.

Ich habe versucht, das Ereignis curl.callback.progress zu abonnieren, aber die PSR 7-Anforderung verfügt nicht über einen Ereignis-Dispatcher. Ich habe das @ ausprobie on_stats, aber der Rückruf wird nur am Ende ausgelöst.Das Fortschritts-Abonnenten-Plugin ist veraltet.https: //github.com/guzzle/progress-subscribe

Ich teste den folgenden Code.

    $dl = 'http://archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/current/images/netboot/mini.iso';
    $client = new Client([]);

    $request = new GuzzleHttp\Psr7\Request('get', $dl);
    $promise = $this->client->sendAsync($request, [
            'sink' => '/tmp/test.bin'
    ]);
    $promise->then(function  (Response $resp) use ( $fs) {
        echo 'Finished';
    }, function  (RequestException $e) {
    });
    $promise->wait();

Ein Hinweis wäre willkommen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage