这是我第一次尝试使用Dropbox API,而我只是遵循PHP SDK中的“ Hello World”。上传方法可以正常工作,但可以下载:
$app = new DropboxApp("...", "...", "...");
$dropbox = new Dropbox($app);
$file = $dropbox->download("/image.png", '/image.png');
返回此警告:
警告:curl_exec():无法在以下位置调用CURLOPT_WRITEFUNCTION /srv/www/website/public_html/dropbox/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php 在第40行
致命错误:未捕获RuntimeException:无法打开/image.png 使用模式w +:fopen(/image.png):无法打开流:权限 被拒绝 /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/functions.php:299 堆栈跟踪:#0 [内部功能]:GuzzleHttp \ Psr7 {closure}(2, 'fopen(/ unifeal -...','/ srv / www / website / ...',307,数组)#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->在 /srv/www/website/public_html/dropbox/vendor/guzzlehttp/psr7/src/functions.php 在第299行
我正在使用Vagrant进行测试。
更新
我可以确认这不是权限问题,因为使用此脚本可以进行下载:
$file = $dropbox->download("/image.png");
$contents = $file->getContents();
file_put_contents(__DIR__ . "/image.png", $contents);
$metadata = $file->getMetadata();
但未使用推荐的方式。