diff options
author | Jörn Friedrich Dreyer <jfd@butonic.de> | 2014-09-09 10:25:10 +0200 |
---|---|---|
committer | Jörn Friedrich Dreyer <jfd@butonic.de> | 2014-09-09 10:25:10 +0200 |
commit | ed2414fd0d983bd8e4682ded9c5b0c1b78c9fc97 (patch) | |
tree | 6f24db04fc635cdaa4e666002b7907b966087f04 /lib/private/files | |
parent | e9a3b280c028e9c7dc5e77bd462af171deb47c79 (diff) | |
parent | c362c78d76cdac6f751b57800d3b452c1442e510 (diff) | |
download | nextcloud-server-ed2414fd0d983bd8e4682ded9c5b0c1b78c9fc97.tar.gz nextcloud-server-ed2414fd0d983bd8e4682ded9c5b0c1b78c9fc97.zip |
Merge pull request #10886 from owncloud/keep_fileid_on_move_in_objectstore
Keep fileid on move in objectstore, fixes #10848
Diffstat (limited to 'lib/private/files')
-rw-r--r-- | lib/private/files/objectstore/objectstorestorage.php | 38 |
1 files changed, 5 insertions, 33 deletions
diff --git a/lib/private/files/objectstore/objectstorestorage.php b/lib/private/files/objectstore/objectstorestorage.php index 0292d777064..241864bcccd 100644 --- a/lib/private/files/objectstore/objectstorestorage.php +++ b/lib/private/files/objectstore/objectstorestorage.php @@ -82,7 +82,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { $parentExists = true; // we are done when the root folder was meant to be created - if ($dirName === $path) { + if ($dirName === $path) { return true; } } @@ -290,38 +290,10 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { public function rename($source, $target) { $source = $this->normalizePath($source); $target = $this->normalizePath($target); - $stat1 = $this->stat($source); - if (isset($stat1['mimetype']) && $stat1['mimetype'] === 'httpd/unix-directory') { - $this->remove($target); - $dir = $this->opendir($source); - $this->mkdir($target); - while ($file = readdir($dir)) { - if (!Filesystem::isIgnoredDir($file)) { - if (!$this->rename($source . '/' . $file, $target . '/' . $file)) { - return false; - } - } - } - closedir($dir); - $this->remove($source); - return true; - } else { - if (is_array($stat1)) { - $parent = $this->stat(dirname($target)); - if (is_array($parent)) { - $this->remove($target); - $stat1['parent'] = $parent['fileid']; - $stat1['path'] = $target; - $stat1['path_hash'] = md5($target); - $stat1['name'] = \OC_Util::basename($target); - $stat1['mtime'] = time(); - $stat1['etag'] = $this->getETag($target); - $this->getCache()->update($stat1['fileid'], $stat1); - return true; - } - } - } - return false; + $this->remove($target); + $this->getCache()->move($source, $target); + $this->touch(dirname($target)); + return true; } public function getMimeType($path) { |