瀏覽代碼

Update AvatarObserver, add logic to delete avatars stored in S3

Daniel Supernault 4 年之前
父節點
當前提交
9eafc31e6f
共有 1 個文件被更改,包括 10 次插入0 次删除
  1. 10 0
      app/Observers/AvatarObserver.php

+ 10 - 0
app/Observers/AvatarObserver.php

@@ -3,6 +3,8 @@
 namespace App\Observers;
 
 use App\Avatar;
+use Illuminate\Support\Facades\Storage;
+use Illuminate\Support\Str;
 
 class AvatarObserver
 {
@@ -54,6 +56,14 @@ class AvatarObserver
         ) {
             @unlink($path);
         }
+
+        if($avatar->cdn_url) {
+            $disk = Storage::disk(config('filesystems.cloud'));
+            $base = Str::startsWith($avatar->media_path, 'cache/avatars/');
+            if($base && $disk->exists($avatar->media_path)) {
+                $disk->delete($avatar->media_path);
+            }
+        }
     }
 
     /**