summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib/dropbox.php
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2012-06-27 15:23:26 -0400
committerMichael Gapczynski <mtgap@owncloud.com>2012-06-27 15:23:49 -0400
commit9b605969f1ef9826469c68ec35df768063f904ba (patch)
treee92ce9a0496f6ed0a59db7b5df3e4d79a4117d84 /apps/files_external/lib/dropbox.php
parent77c66e8cc4ee69b8d52a25c7cf436f1c0347113a (diff)
downloadnextcloud-server-9b605969f1ef9826469c68ec35df768063f904ba.tar.gz
nextcloud-server-9b605969f1ef9826469c68ec35df768063f904ba.zip
Fixes in Dropbox API, try to catch Dropbox exceptions, implement rename and copy in Dropbox storage backend
Diffstat (limited to 'apps/files_external/lib/dropbox.php')
-rwxr-xr-xapps/files_external/lib/dropbox.php59
1 files changed, 48 insertions, 11 deletions
diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index e3fbb244996..35663d431f8 100755
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -70,11 +70,16 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
}
public function mkdir($path) {
- return $this->dropbox->createFolder($path);
+ try {
+ $this->dropbox->createFolder($path);
+ return true;
+ } catch (Exception $exception) {
+ return false;
+ }
}
public function rmdir($path) {
- return $this->dropbox->delete($path);
+ return $this->unlink($path);
}
public function opendir($path) {
@@ -114,11 +119,11 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
}
public function is_readable($path) {
- return self::file_exists($path);
+ return $this->file_exists($path);
}
public function is_writable($path) {
- return self::file_exists($path);
+ return $this->file_exists($path);
}
public function file_exists($path) {
@@ -132,7 +137,30 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
}
public function unlink($path) {
- return $this->dropbox->delete($path);
+ try {
+ $this->dropbox->delete($path);
+ return true;
+ } catch (Exception $exception) {
+ return false;
+ }
+ }
+
+ public function rename($path1, $path2) {
+ try {
+ $this->dropbox->move($path1, $path2);
+ return true;
+ } catch (Exception $exception) {
+ return false;
+ }
+ }
+
+ public function copy($path1, $path2) {
+ try {
+ $this->dropbox->copy($path1, $path2);
+ return true;
+ } catch (Exception $exception) {
+ return false;
+ }
}
public function fopen($path, $mode) {
@@ -140,8 +168,13 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
case 'r':
case 'rb':
$tmpFile = OC_Helper::tmpFile();
- file_put_contents($tmpFile, $this->dropbox->getFile($path));
- return fopen($tmpFile, 'r');
+ try {
+ $data = $this->dropbox->getFile($path);
+ file_put_contents($tmpFile, $data);
+ return fopen($tmpFile, 'r');
+ } catch (Exception $exception) {
+ return false;
+ }
case 'w':
case 'wb':
case 'a':
@@ -174,9 +207,11 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
public function writeBack($tmpFile) {
if (isset(self::$tempFiles[$tmpFile])) {
$handle = fopen($tmpFile, 'r');
- $response = $this->dropbox->putFile(self::$tempFiles[$tmpFile], $handle);
- if ($response) {
+ try {
+ $response = $this->dropbox->putFile(self::$tempFiles[$tmpFile], $handle);
unlink($tmpFile);
+ } catch (Exception $exception) {
+
}
}
}
@@ -191,10 +226,12 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
}
public function free_space($path) {
- if ($info = $this->dropbox->getAccountInfo()) {
+ try {
+ $info = $this->dropbox->getAccountInfo();
return $info['quota_info']['quota'] - $info['quota_info']['normal'];
+ } catch (Exception $exception) {
+ return false;
}
- return false;
}
public function touch($path, $mtime = null) {