зеркало из https://github.com/nextcloud/server.git
Clean user cache on login
This commit is contained in:
Родитель
8a02a8852f
Коммит
53e51fe46b
|
@ -346,8 +346,9 @@ class OC{
|
|||
}
|
||||
}
|
||||
|
||||
// register cache cleanup
|
||||
// register cache cleanup jobs
|
||||
OC_BackgroundJob_RegularTask::register('OC_Cache_FileGlobal', 'gc');
|
||||
OC_Hook::connect('OC_User', 'post_login', 'OC_Cache_File', 'loginListener');
|
||||
|
||||
// Check for blacklisted files
|
||||
OC_Hook::connect('OC_Filesystem','write','OC_Filesystem','isBlacklisted');
|
||||
|
|
|
@ -74,4 +74,25 @@ class OC_Cache_File{
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function gc() {
|
||||
$storage = $this->getStorage();
|
||||
if($storage and $storage->is_dir('/')) {
|
||||
$now = time();
|
||||
$dh=$storage->opendir('/');
|
||||
while($file=readdir($dh)) {
|
||||
if($file!='.' and $file!='..') {
|
||||
$mtime = $storage->filemtime('/'.$file);
|
||||
if ($mtime < $now) {
|
||||
$storage->unlink('/'.$file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function loginListener() {
|
||||
$c = new self();
|
||||
$c->gc();
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче