summaryrefslogtreecommitdiffstats
path: root/apps/files_external
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-10-20 15:17:28 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2015-10-20 15:17:28 +0200
commit257ccfa698e82aca2673fc02bf981adc894411f3 (patch)
tree7d2ed10149976025ba0fff19e8a573baff8ecdd1 /apps/files_external
parentad08cfbc5f670f5cc874bdc107c9662f68d566b3 (diff)
parentd795643ef906eaf1268450fcd7a9b2ea128806c6 (diff)
downloadnextcloud-server-257ccfa698e82aca2673fc02bf981adc894411f3.tar.gz
nextcloud-server-257ccfa698e82aca2673fc02bf981adc894411f3.zip
Merge pull request #19877 from owncloud/dropbox-fixmetadatacachepaths
Fix Dropbox metadata cache with trimmed paths
Diffstat (limited to 'apps/files_external')
-rw-r--r--apps/files_external/lib/dropbox.php14
1 files changed, 9 insertions, 5 deletions
diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index 6a822c3fc69..3b353b7777a 100644
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -64,7 +64,7 @@ class Dropbox extends \OC\Files\Storage\Common {
* @param string $path
*/
private function deleteMetaData($path) {
- $path = $this->root.$path;
+ $path = ltrim($this->root.$path, '/');
if (isset($this->metaData[$path])) {
unset($this->metaData[$path]);
return true;
@@ -72,6 +72,10 @@ class Dropbox extends \OC\Files\Storage\Common {
return false;
}
+ private function setMetaData($path, $metaData) {
+ $this->metaData[ltrim($path, '/')] = $metaData;
+ }
+
/**
* Returns the path's metadata
* @param string $path path for which to return the metadata
@@ -80,7 +84,7 @@ class Dropbox extends \OC\Files\Storage\Common {
* false, null if the file doesn't exist or "false" if the operation failed
*/
private function getDropBoxMetaData($path, $list = false) {
- $path = $this->root.$path;
+ $path = ltrim($this->root.$path, '/');
if ( ! $list && isset($this->metaData[$path])) {
return $this->metaData[$path];
} else {
@@ -96,14 +100,14 @@ class Dropbox extends \OC\Files\Storage\Common {
// Cache folder's contents
foreach ($response['contents'] as $file) {
if (!isset($file['is_deleted']) || !$file['is_deleted']) {
- $this->metaData[$path.'/'.basename($file['path'])] = $file;
+ $this->setMetaData($path.'/'.basename($file['path']), $file);
$contents[] = $file;
}
}
unset($response['contents']);
}
if (!isset($response['is_deleted']) || !$response['is_deleted']) {
- $this->metaData[$path] = $response;
+ $this->setMetaData($path, $response);
}
// Return contents of folder only
return $contents;
@@ -116,7 +120,7 @@ class Dropbox extends \OC\Files\Storage\Common {
$response = $this->dropbox->getMetaData($requestPath, 'false');
if (!isset($response['is_deleted']) || !$response['is_deleted']) {
- $this->metaData[$path] = $response;
+ $this->setMetaData($path, $response);
return $response;
}
return null;