]> source.dussan.org Git - nextcloud-server.git/commitdiff
Only make sure the cache directory exists when we use it
authorRobin Appelman <icewind@owncloud.com>
Wed, 4 Feb 2015 15:52:50 +0000 (16:52 +0100)
committerRobin Appelman <icewind@owncloud.com>
Wed, 4 Feb 2015 15:52:50 +0000 (16:52 +0100)
lib/private/cache/file.php
lib/private/files/filesystem.php

index 4e7c065678e3fb27a2c3f1903416d325071b30d6..d321a954bd229e34df8bff36ddc79d1ecc096741 100644 (file)
@@ -9,22 +9,31 @@
 
 namespace OC\Cache;
 
+use OC\Files\Filesystem;
+use OC\Files\View;
+
 class File {
        protected $storage;
 
        /**
         * Returns the cache storage for the logged in user
+        *
         * @return \OC\Files\View cache storage
         */
        protected function getStorage() {
                if (isset($this->storage)) {
                        return $this->storage;
                }
-               if(\OC_User::isLoggedIn()) {
-                       \OC\Files\Filesystem::initMountPoints(\OC_User::getUser());
-                       $this->storage = new \OC\Files\View('/' . \OC_User::getUser() . '/cache');
+               if (\OC_User::isLoggedIn()) {
+                       $rootView = new View();
+                       $user = \OC::$server->getUserSession()->getUser();
+                       Filesystem::initMountPoints($user->getUID());
+                       if (!$rootView->file_exists('/' . $user->getUID() . '/cache')) {
+                               $rootView->mkdir('/' . $user->getUID() . '/cache');
+                       }
+                       $this->storage = new View('/' . $user->getUID() . '/cache');
                        return $this->storage;
-               }else{
+               } else {
                        \OC_Log::write('core', 'Can\'t get cache storage, user not logged in', \OC_Log::ERROR);
                        throw new \OC\ForbiddenException('Can\t get cache storage, user not logged in');
                }
@@ -66,7 +75,7 @@ class File {
        /**
         * @param string $key
         */
-       public function set($key, $value, $ttl=0) {
+       public function set($key, $value, $ttl = 0) {
                $storage = $this->getStorage();
                $result = false;
                $proxyStatus = \OC_FileProxy::$enabled;
@@ -94,20 +103,20 @@ class File {
         */
        public function remove($key) {
                $storage = $this->getStorage();
-               if(!$storage) {
+               if (!$storage) {
                        return false;
                }
                return $storage->unlink($key);
        }
 
-       public function clear($prefix='') {
+       public function clear($prefix = '') {
                $storage = $this->getStorage();
-               if($storage and $storage->is_dir('/')) {
-                       $dh=$storage->opendir('/');
-                       if(is_resource($dh)) {
+               if ($storage and $storage->is_dir('/')) {
+                       $dh = $storage->opendir('/');
+                       if (is_resource($dh)) {
                                while (($file = readdir($dh)) !== false) {
-                                       if($file!='.' and $file!='..' and ($prefix==='' || strpos($file, $prefix) === 0)) {
-                                               $storage->unlink('/'.$file);
+                                       if ($file != '.' and $file != '..' and ($prefix === '' || strpos($file, $prefix) === 0)) {
+                                               $storage->unlink('/' . $file);
                                        }
                                }
                        }
@@ -117,17 +126,17 @@ class File {
 
        public function gc() {
                $storage = $this->getStorage();
-               if($storage and $storage->is_dir('/')) {
+               if ($storage and $storage->is_dir('/')) {
                        $now = time();
-                       $dh=$storage->opendir('/');
-                       if(!is_resource($dh)) {
+                       $dh = $storage->opendir('/');
+                       if (!is_resource($dh)) {
                                return null;
                        }
                        while (($file = readdir($dh)) !== false) {
-                               if($file!='.' and $file!='..') {
-                                       $mtime = $storage->filemtime('/'.$file);
+                               if ($file != '.' and $file != '..') {
+                                       $mtime = $storage->filemtime('/' . $file);
                                        if ($mtime < $now) {
-                                               $storage->unlink('/'.$file);
+                                               $storage->unlink('/' . $file);
                                        }
                                }
                        }
index 140d892652f9d564817dad151eea8e7ceab3432b..c7454683e802a1d663c3ba164f9c7c6b95569296 100644 (file)
@@ -395,14 +395,7 @@ class Filesystem {
         */
        private static function mountCacheDir($user) {
                $cacheBaseDir = \OC_Config::getValue('cache_path', '');
-               if ($cacheBaseDir === '') {
-                       // use local cache dir relative to the user's home
-                       $subdir = 'cache';
-                       $view = new \OC\Files\View('/' . $user);
-                       if(!$view->file_exists($subdir)) {
-                               $view->mkdir($subdir);
-                       }
-               } else {
+               if ($cacheBaseDir !== '') {
                        $cacheDir = rtrim($cacheBaseDir, '/') . '/' . $user;
                        if (!file_exists($cacheDir)) {
                                mkdir($cacheDir, 0770, true);