diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-10-20 15:17:28 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-10-20 15:17:28 +0200 |
commit | 257ccfa698e82aca2673fc02bf981adc894411f3 (patch) | |
tree | 7d2ed10149976025ba0fff19e8a573baff8ecdd1 /apps/files_external | |
parent | ad08cfbc5f670f5cc874bdc107c9662f68d566b3 (diff) | |
parent | d795643ef906eaf1268450fcd7a9b2ea128806c6 (diff) | |
download | nextcloud-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.php | 14 |
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; |