From 2bcf642e22a6640c3ba63f8cb4ed1c5f1dc2694b Mon Sep 17 00:00:00 2001 From: Ahliman HUSEYNOV Date: Wed, 19 Nov 2025 22:47:19 +0100 Subject: [PATCH] fix(terminal): Update filename parsing regex and improve directory cleanup logic --- app/Helpers/TerminalFileHelper.php | 2 +- app/Jobs/CleanupExpiredTerminalFilesJob.php | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Helpers/TerminalFileHelper.php b/app/Helpers/TerminalFileHelper.php index 849c559ed..36190914d 100644 --- a/app/Helpers/TerminalFileHelper.php +++ b/app/Helpers/TerminalFileHelper.php @@ -55,7 +55,7 @@ class TerminalFileHelper public static function parseFilename(string $filename): ?array { // Pattern: uploadedAt_expiresAt_serverId_containerUuid_originalName_hash.ext - $pattern = '/^(\d+)_(\d+)_(\d+)_([^_]+)_([^_]+)_([a-zA-Z0-9]+)(?:\.(.+))?$/'; + $pattern = '/^(\d+)_(\d+)_(\d+)_([^_]+)_([^_]+)_([a-zA-Z0-9]+)(?:\.([a-zA-Z0-9]+))?$/'; if (!preg_match($pattern, $filename, $matches)) { return null; diff --git a/app/Jobs/CleanupExpiredTerminalFilesJob.php b/app/Jobs/CleanupExpiredTerminalFilesJob.php index bc392d212..706e3e7e0 100644 --- a/app/Jobs/CleanupExpiredTerminalFilesJob.php +++ b/app/Jobs/CleanupExpiredTerminalFilesJob.php @@ -67,8 +67,11 @@ class CleanupExpiredTerminalFilesJob implements ShouldQueue // Clean up empty parent directory $parentDir = dirname($this->localPath); - if (is_dir($parentDir) && count(scandir($parentDir)) === 2) { // Only . and .. - rmdir($parentDir); + if (is_dir($parentDir)) { + $contents = scandir($parentDir); + if ($contents !== false && count($contents) === 2) { // Only . and .. + rmdir($parentDir); + } } } catch (\Throwable $e) { Log::error("Failed to cleanup terminal file: {$e->getMessage()}", [