Как загрузить большой частный файл из Google Storage API с помощью PHP?

Я пытаюсь разрешить загрузку больших файлов клиентам из Google Storage API за аутентифицированным PHP.

Мне удалось прочитать/загрузить небольшие файлы, используя следующий код:

$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 будет иметь все содержимое файла, но некоторые из них могут иметь размер 1 ГБ.

Пробовал использовать:

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

Но это не работает.

Как я могу передать загрузку файла клиенту, не загружая его в память?

Спасибо.


person Alexandru R    schedule 25.03.2016    source источник


Ответы (1)


Рассмотрите возможность отправки клиенту подписанного URL, чтобы содержимое было доставлено. непосредственно из Google Cloud Storage, а не пытаться проксировать загрузку всего файла самостоятельно.

person jarmod    schedule 25.03.2016