Browse Source

Merge pull request #32048 from nextcloud/cache-storage-info

cache storage info in memcache for 5m
tags/v25.0.0beta1
John Molakvoæ 2 years ago
parent
commit
3f55108227
No account linked to committer's email address
1 changed files with 18 additions and 1 deletions
  1. 18
    1
      lib/private/legacy/OC_Helper.php

+ 18
- 1
lib/private/legacy/OC_Helper.php View File

@@ -44,7 +44,9 @@
*
*/
use bantu\IniGetWrapper\IniGetWrapper;
use OC\Files\Filesystem;
use OCP\Files\Mount\IMountPoint;
use OCP\ICacheFactory;
use OCP\IUser;
use Symfony\Component\Process\ExecutableFinder;

@@ -486,9 +488,20 @@ class OC_Helper {
* @throws \OCP\Files\NotFoundException
*/
public static function getStorageInfo($path, $rootInfo = null, $includeMountPoints = true) {
/** @var ICacheFactory $cacheFactory */
$cacheFactory = \OC::$server->get(ICacheFactory::class);
$memcache = $cacheFactory->createLocal('storage_info');

// return storage info without adding mount points
$includeExtStorage = \OC::$server->getSystemConfig()->getValue('quota_include_external_storage', false);

$fullPath = Filesystem::getView()->getAbsolutePath($path);
$cacheKey = $fullPath. '::' . ($includeMountPoints ? 'include' : 'exclude');
$cached = $memcache->get($cacheKey);
if ($cached) {
return $cached;
}

if (!$rootInfo) {
$rootInfo = \OC\Files\Filesystem::getFileInfo($path, $includeExtStorage ? 'ext' : false);
}
@@ -559,7 +572,7 @@ class OC_Helper {
[,,,$mountPoint] = explode('/', $mount->getMountPoint(), 4);
}

return [
$info = [
'free' => $free,
'used' => $used,
'quota' => $quota,
@@ -570,6 +583,10 @@ class OC_Helper {
'mountType' => $mount->getMountType(),
'mountPoint' => trim($mountPoint, '/'),
];

$memcache->set($cacheKey, $info, 5 * 60);

return $info;
}

/**

Loading…
Cancel
Save