Я пытаюсь разрешить загрузку больших файлов клиентам из 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());
Но это не работает.
Как я смогу транслировать загрузку файла клиенту, не загружая его в память?
Благодарю.
Рассмотрите возможность отправки клиенту подписанный URL чтобы контент доставлялся напрямую из Google Cloud Storage, а не пытался проксировать весь файл самостоятельно.
Других решений пока нет …