Fixes in Dropbox API, try to catch Dropbox exceptions, implement rename and copy in Dropbox storage backend
This commit is contained in:
parent
77c66e8cc4
commit
9b605969f1
|
@ -139,7 +139,7 @@ class Dropbox_API {
|
|||
public function copy($from, $to, $root = null) {
|
||||
|
||||
if (is_null($root)) $root = $this->root;
|
||||
$response = $this->oauth->fetch($this->api_url . 'fileops/copy', array('from_path' => $from, 'to_path' => $to, 'root' => $root));
|
||||
$response = $this->oauth->fetch($this->api_url . 'fileops/copy', array('from_path' => $from, 'to_path' => $to, 'root' => $root), 'POST');
|
||||
|
||||
return json_decode($response['body'],true);
|
||||
|
||||
|
@ -178,7 +178,7 @@ class Dropbox_API {
|
|||
public function delete($path, $root = null) {
|
||||
|
||||
if (is_null($root)) $root = $this->root;
|
||||
$response = $this->oauth->fetch($this->api_url . 'fileops/delete', array('path' => $path, 'root' => $root));
|
||||
$response = $this->oauth->fetch($this->api_url . 'fileops/delete', array('path' => $path, 'root' => $root), 'POST');
|
||||
return json_decode($response['body']);
|
||||
|
||||
}
|
||||
|
@ -196,7 +196,7 @@ class Dropbox_API {
|
|||
public function move($from, $to, $root = null) {
|
||||
|
||||
if (is_null($root)) $root = $this->root;
|
||||
$response = $this->oauth->fetch($this->api_url . 'fileops/move', array('from_path' => rawurldecode($from), 'to_path' => rawurldecode($to), 'root' => $root));
|
||||
$response = $this->oauth->fetch($this->api_url . 'fileops/move', array('from_path' => rawurldecode($from), 'to_path' => rawurldecode($to), 'root' => $root), 'POST');
|
||||
|
||||
return json_decode($response['body'],true);
|
||||
|
||||
|
|
|
@ -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));
|
||||
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');
|
||||
try {
|
||||
$response = $this->dropbox->putFile(self::$tempFiles[$tmpFile], $handle);
|
||||
if ($response) {
|
||||
unlink($tmpFile);
|
||||
} catch (Exception $exception) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -191,11 +226,13 @@ 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;
|
||||
}
|
||||
}
|
||||
|
||||
public function touch($path, $mtime = null) {
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue