From a4e055e21b52062b073647e51e020880a69f8649 Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 13 Jun 2023 15:03:22 +0300 Subject: [PATCH 1/3] cache deletion bug fix --- app/controllers/api/storage.php | 11 ++--------- app/workers/deletes.php | 7 +++---- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 8702429d5f..1ea8d96df1 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -359,8 +359,7 @@ App::post('/v1/storage/buckets/:bucketId/files') ->inject('mode') ->inject('deviceFiles') ->inject('deviceLocal') - ->inject('deletes') - ->action(function (string $bucketId, string $fileId, mixed $file, ?array $permissions, Request $request, Response $response, Database $dbForProject, Document $user, Event $events, string $mode, Device $deviceFiles, Device $deviceLocal, Delete $deletes) { + ->action(function (string $bucketId, string $fileId, mixed $file, ?array $permissions, Request $request, Response $response, Database $dbForProject, Document $user, Event $events, string $mode, Device $deviceFiles, Device $deviceLocal) { $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); @@ -1258,8 +1257,7 @@ App::put('/v1/storage/buckets/:bucketId/files/:fileId') ->inject('user') ->inject('mode') ->inject('events') - ->inject('deletes') - ->action(function (string $bucketId, string $fileId, ?array $permissions, Response $response, Database $dbForProject, Document $user, string $mode, Event $events, Delete $deletes) { + ->action(function (string $bucketId, string $fileId, ?array $permissions, Response $response, Database $dbForProject, Document $user, string $mode, Event $events) { $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); @@ -1325,11 +1323,6 @@ App::put('/v1/storage/buckets/:bucketId/files/:fileId') $file = Authorization::skip(fn() => $dbForProject->updateDocument('bucket_' . $bucket->getInternalId(), $fileId, $file)); } - $deletes - ->setType(DELETE_TYPE_CACHE_BY_RESOURCE) - ->setResource('file/' . $file->getId()) - ; - $events ->setParam('bucketId', $bucket->getId()) ->setParam('fileId', $file->getId()) diff --git a/app/workers/deletes.php b/app/workers/deletes.php index e917830e14..3f7952609c 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -168,8 +168,8 @@ class DeletesV1 extends Worker */ protected function deleteCacheByResource(Document $project, string $resource): void { - $dbForProject = $this->getProjectDB($project); $projectId = $project->getId(); + $dbForProject = $this->getProjectDB($projectId); $document = $dbForProject->findOne('cache', [Query::equal('resource', [$resource])]); if ($document) { @@ -199,10 +199,9 @@ class DeletesV1 extends Worker */ protected function deleteCacheByDate(string $datetime): void { - $this->deleteForProjectIds(function (Document $project) use ($datetime) { + $this->deleteForProjectIds(function (Document $projectId) use ($datetime) { - $projectId = $project->getId(); - $dbForProject = $this->getProjectDB($project); + $dbForProject = $this->getProjectDB($projectId); $cache = new Cache( new Filesystem(APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $projectId) ); From 9d75e65ba918ba41c0cc7ae47a567227836bbf2a Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 13 Jun 2023 17:03:33 +0300 Subject: [PATCH 2/3] cache deletion bug fix --- app/workers/deletes.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 3f7952609c..9e8221e6d5 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -169,7 +169,7 @@ class DeletesV1 extends Worker protected function deleteCacheByResource(Document $project, string $resource): void { $projectId = $project->getId(); - $dbForProject = $this->getProjectDB($projectId); + $dbForProject = $this->getProjectDB($project); $document = $dbForProject->findOne('cache', [Query::equal('resource', [$resource])]); if ($document) { @@ -199,11 +199,11 @@ class DeletesV1 extends Worker */ protected function deleteCacheByDate(string $datetime): void { - $this->deleteForProjectIds(function (Document $projectId) use ($datetime) { + $this->deleteForProjectIds(function (Document $project) use ($datetime) { - $dbForProject = $this->getProjectDB($projectId); + $dbForProject = $this->getProjectDB($project); $cache = new Cache( - new Filesystem(APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $projectId) + new Filesystem(APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $project->getId()) ); $query = [ @@ -214,8 +214,8 @@ class DeletesV1 extends Worker 'cache', $query, $dbForProject, - function (Document $document) use ($cache, $projectId) { - $path = APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $projectId . DIRECTORY_SEPARATOR . $document->getId(); + function (Document $document) use ($cache, $project) { + $path = APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $project->getId() . DIRECTORY_SEPARATOR . $document->getId(); if ($cache->purge($document->getId())) { Console::success('Deleting cache file: ' . $path); From 6093262f213fdd78c73799790c7694810e650b62 Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 13 Jun 2023 18:04:11 +0300 Subject: [PATCH 3/3] cache deletion bug fix --- app/workers/deletes.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 9e8221e6d5..6eed3a8a40 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -200,10 +200,10 @@ class DeletesV1 extends Worker protected function deleteCacheByDate(string $datetime): void { $this->deleteForProjectIds(function (Document $project) use ($datetime) { - + $projectId = $project->getId(); $dbForProject = $this->getProjectDB($project); $cache = new Cache( - new Filesystem(APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $project->getId()) + new Filesystem(APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $projectId) ); $query = [ @@ -214,8 +214,8 @@ class DeletesV1 extends Worker 'cache', $query, $dbForProject, - function (Document $document) use ($cache, $project) { - $path = APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $project->getId() . DIRECTORY_SEPARATOR . $document->getId(); + function (Document $document) use ($cache, $projectId) { + $path = APP_STORAGE_CACHE . DIRECTORY_SEPARATOR . 'app-' . $projectId . DIRECTORY_SEPARATOR . $document->getId(); if ($cache->purge($document->getId())) { Console::success('Deleting cache file: ' . $path);