2016-03-25 5 views
0

Ich versuche den Download von großen Dateien auf Clients von Google Storage API hinter einem authentifizierten PHP zu ermöglichen.Wie lade ich eine große private Datei von Google Storage API mit PHP herunter?

konnte ich kleine Dateien den folgenden Code zum Lesen/Download mit:

$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()); 

$ Körper den gesamten Inhalt der Datei haben, aber einige von denen vielleicht 1gb groß sein.

mit Versuchte:

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

Aber es funktioniert nicht.

Wie könnte ich den Download der Datei auf den Client streamen, ohne ihn in den Speicher zu laden?

Danke.

Antwort

0

Ziehen Sie in Erwägung, dem Kunden eine signed URL zu senden, damit der Inhalt direkt aus Google Cloud Storage bereitgestellt wird, anstatt den gesamten Dateidownload selbst durchzuführen.

Verwandte Themen