0

我试图允许从经过身份验证的 PHP 后面的 Google Storage API 将大文件下载到客户端。

我能够使用以下代码读取/下载小文件:

$object = $storage->objects->get($bucket, 'filename');
$request = new GuzzleHttp\Psr7\Request('GET', $object['mediaLink']);
//authorize the request before sending
$http = $client->authorize();
$response = $http->send($request);
$body = $response->getBody()->read($object->getSize());

$body 将包含文件的全部内容,但其中一些可能是 1gb 大小。

尝试使用:

$stream = Psr7\stream_for($response->getBody());

但它不起作用。

我如何能够将文件的下载流式传输到客户端而不将其加载到内存中?

谢谢。

4

1 回答 1

0

考虑向客户端发送签名 URL,以便直接从 Google Cloud Storage 提供内容,而不是尝试自己代理整个文件下载。

于 2016-03-25T19:22:25.833 回答