mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
better caching in storage stats calculations
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
36f9ebb677
commit
80b001f82e
1 changed files with 12 additions and 7 deletions
|
|
@ -69,6 +69,8 @@ use Psr\Log\LoggerInterface;
|
|||
*/
|
||||
class OC_Helper {
|
||||
private static $templateManager;
|
||||
private static ?ICacheFactory $cacheFactory = null;
|
||||
private static ?bool $quotaIncludeExternalStorage = null;
|
||||
|
||||
/**
|
||||
* Make a human file size
|
||||
|
|
@ -475,12 +477,15 @@ class OC_Helper {
|
|||
* @throws \OCP\Files\NotFoundException
|
||||
*/
|
||||
public static function getStorageInfo($path, $rootInfo = null, $includeMountPoints = true, $useCache = true) {
|
||||
/** @var ICacheFactory $cacheFactory */
|
||||
$cacheFactory = \OC::$server->get(ICacheFactory::class);
|
||||
$memcache = $cacheFactory->createLocal('storage_info');
|
||||
if (!self::$cacheFactory) {
|
||||
self::$cacheFactory = \OC::$server->get(ICacheFactory::class);
|
||||
}
|
||||
$memcache = self::$cacheFactory->createLocal('storage_info');
|
||||
|
||||
// return storage info without adding mount points
|
||||
$includeExtStorage = \OC::$server->getSystemConfig()->getValue('quota_include_external_storage', false);
|
||||
if (self::$quotaIncludeExternalStorage === null) {
|
||||
self::$quotaIncludeExternalStorage = \OC::$server->getSystemConfig()->getValue('quota_include_external_storage', false);
|
||||
}
|
||||
|
||||
$view = Filesystem::getView();
|
||||
if (!$view) {
|
||||
|
|
@ -497,7 +502,7 @@ class OC_Helper {
|
|||
}
|
||||
|
||||
if (!$rootInfo) {
|
||||
$rootInfo = \OC\Files\Filesystem::getFileInfo($path, $includeExtStorage ? 'ext' : false);
|
||||
$rootInfo = \OC\Files\Filesystem::getFileInfo($path, self::$quotaIncludeExternalStorage ? 'ext' : false);
|
||||
}
|
||||
if (!$rootInfo instanceof \OCP\Files\FileInfo) {
|
||||
throw new \OCP\Files\NotFoundException('The root directory of the user\'s files is missing');
|
||||
|
|
@ -512,9 +517,9 @@ class OC_Helper {
|
|||
$storage = $mount->getStorage();
|
||||
$sourceStorage = $storage;
|
||||
if ($storage->instanceOfStorage('\OCA\Files_Sharing\SharedStorage')) {
|
||||
$includeExtStorage = false;
|
||||
self::$quotaIncludeExternalStorage = false;
|
||||
}
|
||||
if ($includeExtStorage) {
|
||||
if (self::$quotaIncludeExternalStorage) {
|
||||
if ($storage->instanceOfStorage('\OC\Files\Storage\Home')
|
||||
|| $storage->instanceOfStorage('\OC\Files\ObjectStore\HomeObjectStoreStorage')
|
||||
) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue