diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index f59b5a460e1de37e698a636e65fa88edb23cac9b..8381ccbae59cf3f95d5f0f99ec0fc871cc801950 100644
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -29,7 +29,9 @@
 
 namespace OC\Files\Storage;
 
+use GuzzleHttp\Exception\RequestException;
 use Icewind\Streams\IteratorDirectory;
+use Icewind\Streams\RetryWrapper;
 
 require_once __DIR__ . '/../3rdparty/Dropbox/autoload.php';
 
@@ -257,10 +259,9 @@ class Dropbox extends \OC\Files\Storage\Common {
 
 					$client = \OC::$server->getHTTPClientService()->newClient();
 					try {
-						$tmpFile = \OC::$server->getTempManager()->getTemporaryFile();
-						$client->get($downloadUrl, [
+						$response = $client->get($downloadUrl, [
 							'headers' => $headers,
-							'save_to' => $tmpFile,
+							'stream' => true,
 						]);
 					} catch (RequestException $e) {
 						if (!is_null($e->getResponse())) {
@@ -274,7 +275,8 @@ class Dropbox extends \OC\Files\Storage\Common {
 						}
 					}
 
-					return fopen($tmpFile, 'r');
+					$handle = $response->getBody();
+					return RetryWrapper::wrap($handle);
 				} catch (\Exception $exception) {
 					\OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
 					return false;