Curl error when try to download file using Dropbox API

426 Views Asked by At

This is my first attempt using Dropbox API and I'm just following the "Hello World" from PHP SDK. Upload methods is working fine, but download:

$app = new DropboxApp("...", "...", "...");
$dropbox = new Dropbox($app);
$file = $dropbox->download("/image.png", '/image.png');

Return this warning:

Warning: curl_exec(): Could not call the CURLOPT_WRITEFUNCTION in /srv/www/website/public_html/dropbox/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php on line 40

Fatal error: Uncaught RuntimeException: Unable to open /image.png using mode w+: fopen(/image.png): failed to open stream: Permission denied in /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/functions.php:299 Stack trace: #0 [internal function]: GuzzleHttp\Psr7{closure}(2, 'fopen(/unifeal-...', '/srv/www/website/...', 307, Array) #1 /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/functions.php(307): fopen('/image.p...', 'w+') #2 /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/LazyOpenStream.php(37): GuzzleHttp\Psr7\try_fopen('/image.p...', 'w+') #3 /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php(31): GuzzleHttp\Psr7\LazyOpenStream->createStream() #4 /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php(136): GuzzleHttp\Psr7\LazyOpenStream->__get('stream') #5 /srv/www/website/public_html/dropbox/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(380): GuzzleHttp\Psr7\LazyOpenStream-> in /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/functions.php on line 299

I'm testing using Vagrant.

UPDATE

I can confirm that is not a permission issue because download works using this script:

$file = $dropbox->download("/image.png");
$contents = $file->getContents();
file_put_contents(__DIR__ . "/image.png", $contents);
$metadata = $file->getMetadata();

But not using the recommended way.

0

There are 0 best solutions below