如何使用PHP从Google Storage API下载大型私有文件?

时间:2016-03-25 09:59:11

标签: php google-cloud-storage google-client

我正在尝试允许从经过身份验证的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());

但它不起作用。

如何在不将内容加载到内存的情况下将文件下载流式传输到客户端?

感谢。

1 个答案:

答案 0 :(得分:0)

考虑向客户端发送signed URL,以便直接从Google云端存储中提供内容,而不是尝试自行代理整个文件下载。