|
|
|
|
@ -316,6 +316,16 @@ class Proxy extends \OC_FileProxy {
|
|
|
|
|
|
|
|
|
|
$view = new \OC_FilesystemView('/');
|
|
|
|
|
|
|
|
|
|
$userId = \OCP\User::getUser();
|
|
|
|
|
$util = new Util($view, $userId);
|
|
|
|
|
|
|
|
|
|
// if encryption is no longer enabled or if the files aren't migrated yet
|
|
|
|
|
// we return the default file size
|
|
|
|
|
if(!\OCP\App::isEnabled('files_encryption') ||
|
|
|
|
|
$util->getMigrationStatus() !== Util::MIGRATION_COMPLETED) {
|
|
|
|
|
return $size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if path is a folder do nothing
|
|
|
|
|
if ($view->is_dir($path)) {
|
|
|
|
|
return $size;
|
|
|
|
|
@ -337,6 +347,15 @@ class Proxy extends \OC_FileProxy {
|
|
|
|
|
|
|
|
|
|
// if file is encrypted return real file size
|
|
|
|
|
if (is_array($fileInfo) && $fileInfo['encrypted'] === true) {
|
|
|
|
|
// try to fix unencrypted file size if it doesn't look plausible
|
|
|
|
|
if ((int)$fileInfo['size'] > 0 && (int)$fileInfo['encrypted_size'] === 0) {
|
|
|
|
|
$fixSize = $util->getFileSize($path);
|
|
|
|
|
$fileInfo['unencrypted_size'] = $fixSize;
|
|
|
|
|
// put file info if not .part file
|
|
|
|
|
if (!Keymanager::isPartialFilePath($relativePath)) {
|
|
|
|
|
$view->putFileInfo($path, $fileInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$size = $fileInfo['unencrypted_size'];
|
|
|
|
|
} else {
|
|
|
|
|
// self healing if file was removed from file cache
|
|
|
|
|
@ -344,8 +363,6 @@ class Proxy extends \OC_FileProxy {
|
|
|
|
|
$fileInfo = array();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$userId = \OCP\User::getUser();
|
|
|
|
|
$util = new Util($view, $userId);
|
|
|
|
|
$fixSize = $util->getFileSize($path);
|
|
|
|
|
if ($fixSize > 0) {
|
|
|
|
|
$size = $fixSize;
|
|
|
|
|
|