|
|
|
|
@ -465,28 +465,36 @@ class Proxy extends \OC_FileProxy
|
|
|
|
|
return $size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// get file info from database/cache
|
|
|
|
|
$fileInfo = \OC\Files\Filesystem::getFileInfo($path_f);
|
|
|
|
|
$fileInfo = false;
|
|
|
|
|
// get file info from database/cache if not .part file
|
|
|
|
|
if(!Keymanager::isPartialFilePath($path)) {
|
|
|
|
|
$fileInfo = $view->getFileInfo($path);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if file is encrypted return real file size
|
|
|
|
|
if (is_array($fileInfo) && $fileInfo['encrypted'] === true) {
|
|
|
|
|
$size = $fileInfo['unencrypted_size'];
|
|
|
|
|
} else {
|
|
|
|
|
// self healing if file was removed from file cache
|
|
|
|
|
if (is_array($fileInfo)) {
|
|
|
|
|
$userId = \OCP\User::getUser();
|
|
|
|
|
$util = new Util($view, $userId);
|
|
|
|
|
$fixSize = $util->getFileSize($path);
|
|
|
|
|
if ($fixSize > 0) {
|
|
|
|
|
$size = $fixSize;
|
|
|
|
|
if (!is_array($fileInfo)) {
|
|
|
|
|
$fileInfo = array();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$fileInfo['encrypted'] = true;
|
|
|
|
|
$fileInfo['unencrypted_size'] = $size;
|
|
|
|
|
$userId = \OCP\User::getUser();
|
|
|
|
|
$util = new Util($view, $userId);
|
|
|
|
|
$fixSize = $util->getFileSize($path);
|
|
|
|
|
if ($fixSize > 0) {
|
|
|
|
|
$size = $fixSize;
|
|
|
|
|
|
|
|
|
|
// put file info
|
|
|
|
|
$fileInfo['encrypted'] = true;
|
|
|
|
|
$fileInfo['unencrypted_size'] = $size;
|
|
|
|
|
|
|
|
|
|
// put file info if not .part file
|
|
|
|
|
if(!Keymanager::isPartialFilePath($path_f)) {
|
|
|
|
|
$view->putFileInfo($path, $fileInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return $size;
|
|
|
|
|
}
|
|
|
|
|
|