Skip to content

Commit 6d40e69

Browse files
committed
Merge pull request #23517 from owncloud/gdrive-stream-download
GDrive stream download with RetryWrapper
2 parents 3142dcc + 7be541b commit 6d40e69

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

apps/files_external/lib/google.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
use GuzzleHttp\Exception\RequestException;
3737
use Icewind\Streams\IteratorDirectory;
38+
use Icewind\Streams\RetryWrapper;
3839

3940
set_include_path(get_include_path().PATH_SEPARATOR.
4041
\OC_App::getAppPath('files_external').'/3rdparty/google-api-php-client/src');
@@ -441,10 +442,9 @@ public function fopen($path, $mode) {
441442
// the library's service doesn't support streaming, so we use Guzzle instead
442443
$client = \OC::$server->getHTTPClientService()->newClient();
443444
try {
444-
$tmpFile = \OC::$server->getTempManager()->getTemporaryFile($ext);
445-
$client->get($downloadUrl, [
445+
$response = $client->get($downloadUrl, [
446446
'headers' => $httpRequest->getRequestHeaders(),
447-
'save_to' => $tmpFile,
447+
'stream' => true,
448448
'verify' => __DIR__ . '/../3rdparty/google-api-php-client/src/Google/IO/cacerts.pem',
449449
]);
450450
} catch (RequestException $e) {
@@ -459,7 +459,8 @@ public function fopen($path, $mode) {
459459
}
460460
}
461461

462-
return fopen($tmpFile, 'r');
462+
$handle = $response->getBody();
463+
return RetryWrapper::wrap($handle);
463464
}
464465
}
465466
return false;

0 commit comments

Comments
 (0)