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();
ヒントをいただければ幸いです。