From a36b7f72912a6a221f93c494ca0db3af00ac003a Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 18 Dec 2022 00:40:59 -0700 Subject: [PATCH] Update CloudMediaMigrate command --- app/Console/Commands/CloudMediaMigrate.php | 2 +- .../Commands/MediaS3GarbageCollector.php | 86 ++++++++++++------- 2 files changed, 56 insertions(+), 32 deletions(-) diff --git a/app/Console/Commands/CloudMediaMigrate.php b/app/Console/Commands/CloudMediaMigrate.php index 767b518a2..e1cad9313 100644 --- a/app/Console/Commands/CloudMediaMigrate.php +++ b/app/Console/Commands/CloudMediaMigrate.php @@ -69,7 +69,7 @@ class CloudMediaMigrate extends Command return; } catch (NotFoundHttpException $e) { return; - } catch (Exception $e) { + } catch (\Exception $e) { return; } } diff --git a/app/Console/Commands/MediaS3GarbageCollector.php b/app/Console/Commands/MediaS3GarbageCollector.php index db52937fa..6956e44c3 100644 --- a/app/Console/Commands/MediaS3GarbageCollector.php +++ b/app/Console/Commands/MediaS3GarbageCollector.php @@ -9,6 +9,8 @@ use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; use App\Services\MediaService; use App\Services\StatusService; +use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; class MediaS3GarbageCollector extends Command { @@ -88,26 +90,37 @@ class MediaS3GarbageCollector extends Command $localDisk = Storage::disk('local'); foreach($gc as $media) { - if( - $cloudDisk->exists($media->media_path) - ) { - if( $localDisk->exists($media->media_path)) { - $localDisk->delete($media->media_path); - $media->version = 4; - $media->save(); - $totalSize = $totalSize + $media->size; - MediaService::del($media->status_id); - StatusService::del($media->status_id, false); + try { + if( + $cloudDisk->exists($media->media_path) + ) { + if( $localDisk->exists($media->media_path)) { + $localDisk->delete($media->media_path); + $media->version = 4; + $media->save(); + $totalSize = $totalSize + $media->size; + MediaService::del($media->status_id); + StatusService::del($media->status_id, false); + } else { + $media->version = 4; + $media->save(); + } } else { - $media->version = 4; - $media->save(); - } - } else { - if($log) { - Log::channel('media')->info('[GC] Local media not properly persisted to cloud storage', ['media_id' => $media->id]); + if($log) { + Log::channel('media')->info('[GC] Local media not properly persisted to cloud storage', ['media_id' => $media->id]); + } } + $bar->advance(); + } catch (FileNotFoundException $e) { + $bar->advance(); + continue; + } catch (NotFoundHttpException $e) { + $bar->advance(); + continue; + } catch (\Exception $e) { + $bar->advance(); + continue; } - $bar->advance(); } $bar->finish(); $this->line(' '); @@ -132,23 +145,34 @@ class MediaS3GarbageCollector extends Command ->where('id', '<', $minId) ->chunk(50, function($medias) use($cloudDisk, $localDisk, $bar, $log) { foreach($medias as $media) { - if($cloudDisk->exists($media->media_path)) { - if( $localDisk->exists($media->media_path)) { - $localDisk->delete($media->media_path); - $media->version = 4; - $media->save(); - MediaService::del($media->status_id); - StatusService::del($media->status_id, false); + try { + if($cloudDisk->exists($media->media_path)) { + if( $localDisk->exists($media->media_path)) { + $localDisk->delete($media->media_path); + $media->version = 4; + $media->save(); + MediaService::del($media->status_id); + StatusService::del($media->status_id, false); + } else { + $media->version = 4; + $media->save(); + } } else { - $media->version = 4; - $media->save(); - } - } else { - if($log) { - Log::channel('media')->info('[GC] Local media not properly persisted to cloud storage', ['media_id' => $media->id]); + if($log) { + Log::channel('media')->info('[GC] Local media not properly persisted to cloud storage', ['media_id' => $media->id]); + } } + $bar->advance(); + } catch (FileNotFoundException $e) { + $bar->advance(); + continue; + } catch (NotFoundHttpException $e) { + $bar->advance(); + continue; + } catch (\Exception $e) { + $bar->advance(); + continue; } - $bar->advance(); } });