Remove deleted versions from the cache
This commit is contained in:
parent
480f5ddda3
commit
aab33b8b0e
1 changed files with 21 additions and 4 deletions
|
@ -131,6 +131,23 @@ class Storage {
|
||||||
'filename' => $filename);
|
'filename' => $filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delete the version from the storage and cache
|
||||||
|
*
|
||||||
|
* @param \OC\Files\View $view
|
||||||
|
* @param string $path
|
||||||
|
*/
|
||||||
|
protected static function deleteVersion($view, $path) {
|
||||||
|
$view->unlink($path);
|
||||||
|
/**
|
||||||
|
* @var \OC\Files\Storage\Storage $storage
|
||||||
|
* @var string $internalPath
|
||||||
|
*/
|
||||||
|
list($storage, $internalPath) = $view->resolvePath($path);
|
||||||
|
$cache = $storage->getCache($internalPath);
|
||||||
|
$cache->remove($internalPath);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete versions of a file
|
* Delete versions of a file
|
||||||
*/
|
*/
|
||||||
|
@ -148,7 +165,7 @@ class Storage {
|
||||||
if (!empty($versions)) {
|
if (!empty($versions)) {
|
||||||
foreach ($versions as $v) {
|
foreach ($versions as $v) {
|
||||||
\OC_Hook::emit('\OCP\Versions', 'preDelete', array('path' => $path . $v['version']));
|
\OC_Hook::emit('\OCP\Versions', 'preDelete', array('path' => $path . $v['version']));
|
||||||
$view->unlink($filename . '.v' . $v['version']);
|
self::deleteVersion($view, $filename . '.v' . $v['version']);
|
||||||
\OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $path . $v['version']));
|
\OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $path . $v['version']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,7 +236,7 @@ class Storage {
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}else if ( $versionCreated ) {
|
}else if ( $versionCreated ) {
|
||||||
$users_view->unlink($version);
|
self::deleteVersion($users_view, $version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -471,7 +488,7 @@ class Storage {
|
||||||
|
|
||||||
foreach($toDelete as $key => $path) {
|
foreach($toDelete as $key => $path) {
|
||||||
\OC_Hook::emit('\OCP\Versions', 'preDelete', array('path' => $path));
|
\OC_Hook::emit('\OCP\Versions', 'preDelete', array('path' => $path));
|
||||||
$versionsFileview->unlink($path);
|
self::deleteVersion($versionsFileview, $path);
|
||||||
\OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $path));
|
\OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $path));
|
||||||
unset($allVersions[$key]); // update array with the versions we keep
|
unset($allVersions[$key]); // update array with the versions we keep
|
||||||
\OCP\Util::writeLog('files_versions', "Expire: " . $path, \OCP\Util::DEBUG);
|
\OCP\Util::writeLog('files_versions', "Expire: " . $path, \OCP\Util::DEBUG);
|
||||||
|
@ -485,7 +502,7 @@ class Storage {
|
||||||
while ($availableSpace < 0 && $i < $numOfVersions) {
|
while ($availableSpace < 0 && $i < $numOfVersions) {
|
||||||
$version = current($allVersions);
|
$version = current($allVersions);
|
||||||
\OC_Hook::emit('\OCP\Versions', 'preDelete', array('path' => $version['path'].'.v'.$version['version']));
|
\OC_Hook::emit('\OCP\Versions', 'preDelete', array('path' => $version['path'].'.v'.$version['version']));
|
||||||
$versionsFileview->unlink($version['path'].'.v'.$version['version']);
|
self::deleteVersion($versionsFileview, $version['path'] . '.v' . $version['version']);
|
||||||
\OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $version['path'].'.v'.$version['version']));
|
\OC_Hook::emit('\OCP\Versions', 'delete', array('path' => $version['path'].'.v'.$version['version']));
|
||||||
\OCP\Util::writeLog('files_versions', 'running out of space! Delete oldest version: ' . $version['path'].'.v'.$version['version'] , \OCP\Util::DEBUG);
|
\OCP\Util::writeLog('files_versions', 'running out of space! Delete oldest version: ' . $version['path'].'.v'.$version['version'] , \OCP\Util::DEBUG);
|
||||||
$versionsSize -= $version['size'];
|
$versionsSize -= $version['size'];
|
||||||
|
|
Loading…
Reference in a new issue