From c89e3c2f74d6f0bf253dddc18a4a4d305821cbe7 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 7 Apr 2025 18:12:42 +0200 Subject: feat: move file cache to a background job Signed-off-by: Robin Appelman --- lib/private/Cache/File.php | 12 +++++---- .../Repair/NC32/AddFileCacheGcBackgroundJob.php | 29 ++++++++++++++++++++++ 2 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 lib/private/Repair/NC32/AddFileCacheGcBackgroundJob.php (limited to 'lib/private') diff --git a/lib/private/Cache/File.php b/lib/private/Cache/File.php index 99b14e92787..e8c436636ab 100644 --- a/lib/private/Cache/File.php +++ b/lib/private/Cache/File.php @@ -28,12 +28,14 @@ class File implements ICache { * @throws \OC\ForbiddenException * @throws \OC\User\NoUserException */ - protected function getStorage() { + protected function getStorage(?IUser $user = null): Folder { if ($this->storage !== null) { return $this->storage; } - $session = Server::get(IUserSession::class); - $user = $session->getUser(); + if (!$user) { + $session = Server::get(IUserSession::class); + $user = $session->getUser(); + } $rootFolder = Server::get(IRootFolder::class); if ($user) { $userId = $user->getUID(); @@ -156,8 +158,8 @@ class File implements ICache { * Runs GC * @throws \OC\ForbiddenException */ - public function gc() { - $storage = $this->getStorage(); + public function gc(?IUser $user = null) { + $storage = $this->getStorage($user); // extra hour safety, in case of stray part chunks that take longer to write, // because touch() is only called after the chunk was finished diff --git a/lib/private/Repair/NC32/AddFileCacheGcBackgroundJob.php b/lib/private/Repair/NC32/AddFileCacheGcBackgroundJob.php new file mode 100644 index 00000000000..b6b0af1bf32 --- /dev/null +++ b/lib/private/Repair/NC32/AddFileCacheGcBackgroundJob.php @@ -0,0 +1,29 @@ +jobList->add(FileCacheGcJob::class); + } +} -- cgit v1.2.3