try to fix unencrypted file size if it doesn't look plausible
This commit is contained in:
parent
e9ce704f17
commit
4151fd3ed9
|
@ -316,6 +316,16 @@ class Proxy extends \OC_FileProxy {
|
||||||
|
|
||||||
$view = new \OC_FilesystemView('/');
|
$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 path is a folder do nothing
|
||||||
if ($view->is_dir($path)) {
|
if ($view->is_dir($path)) {
|
||||||
return $size;
|
return $size;
|
||||||
|
@ -337,6 +347,15 @@ class Proxy extends \OC_FileProxy {
|
||||||
|
|
||||||
// if file is encrypted return real file size
|
// if file is encrypted return real file size
|
||||||
if (is_array($fileInfo) && $fileInfo['encrypted'] === true) {
|
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'];
|
$size = $fileInfo['unencrypted_size'];
|
||||||
} else {
|
} else {
|
||||||
// self healing if file was removed from file cache
|
// self healing if file was removed from file cache
|
||||||
|
@ -344,8 +363,6 @@ class Proxy extends \OC_FileProxy {
|
||||||
$fileInfo = array();
|
$fileInfo = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$userId = \OCP\User::getUser();
|
|
||||||
$util = new Util($view, $userId);
|
|
||||||
$fixSize = $util->getFileSize($path);
|
$fixSize = $util->getFileSize($path);
|
||||||
if ($fixSize > 0) {
|
if ($fixSize > 0) {
|
||||||
$size = $fixSize;
|
$size = $fixSize;
|
||||||
|
|
Loading…
Reference in New Issue