7

Guzzleで大きなファイルをダウンロードしたいのですが、進行状況を追跡したいです。ストリームを渡す必要があるのか​​、何らかの方法で RequestMediator を使用する必要があるのか​​ わかりません。

  • イベント curl.callback.progress をサブスクライブしてみましたが、PSR 7 Request にはイベント ディスパッチャがありません。
  • on_statsを試しましたが、コールバックは最後にのみ発生します。
  • プログレス サブスクライバー プラグインは廃止されましたhttps://github.com/guzzle/progress-subscriber

次のコードをテストしています。

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

ヒントをいただければ幸いです。

4

1 に答える 1