Guzzle 6 progreso de descarga

Quiero descargar un archivo grande con Guzzle y quiero seguir el progreso. No sé si tengo que pasar una transmisión o usar RequestMediator de alguna manera.

Intenté suscribirme al evento curl.callback.progress, pero la solicitud PSR 7 no tiene un despachador de eventos.Probé elon_stats, pero la devolución de llamada solo se activa al final.El complemento de suscriptor de progreso está en desusohttps://github.com/guzzle/progress-subscriber

Estoy probando el siguiente código.

    $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();

Una pista sería apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta