Bir Laravel geliştiricisi olarak, SoftDeletes özelliğine uzun yıllardır güveniyorum. Hatalı bir şekilde silinen kullanıcılar veya blog yazıları için oldukça iyi bir çözüm; ancak .env konfigürasyonları, özel anahtarlar veya PII gibi hassas dosyalar söz konusu olduğunda büyük bir risk oluşturuyor.
Büyük dosya paylaşım hizmetlerinin verileri nasıl yönettiğini incelemeye başladım ve çoğunun yalnızca veritabanında deleted_at bayrağını değiştirdiğini fark ettim. Gerçek nesne, “her ihtimale karşı” 30 gün boyunca bir S3 havuzunda kalıyor.
Bu “hayalet veri” konusunun bulut depolamada durmasından endişelenmeye başladım ve hafta sonlarımı FortByte.io’yu inşa ederek geçirdim.
Hedef: Gerçek Sıfır Süreklilik
Bağlantı süresi dolduğu an (veya görüntülendiği an) S3 nesnesinin fiziksel ve kalıcı bir şekilde silindiği bir “okuduktan sonra yok et” iş akışına sahip olmak istiyordum. 30 günlük bir saklama süresi, “çöp” klasörü ve kurtarma olmadan.
Teknoloji Yığını:
Backend: Laravel
Frontend: Inertia.js/Vue.js
Depolama: S3
Altyapı: DigitalOcean
Nasıl çalışıyor:
Kayıtları yalnızca gizlemek yerine, tetiklenmiş bir iş akışı kurdum. Bir dosya son tarihine ulaştığında:
Veritabanı kaydı temizleniyor.
S3 üzerinde DeleteObject komutu hemen veriliyor.
Transfer ile ilgili geçici loglar temizleniyor.
Gerçekten bir güvenlik ağı isteyen kullanıcılar için isteğe bağlı 30 günlük bir saklama seçeneği ekledim, ancak varsayılan olarak “Sil” demek “Gitti” demek.
Neden bunu kurdum:
Aslında, bu sadece anahtarları müşterilere gönderirken yaşadığım iş akışı sorunlarını çözmek için yapılmıştı, ancak canlı hale getirdim ve dijital bir iz bırakmak istemeyen diğerleri için ücretsiz bir seçenek sundum.
Arayüz veya temizleme mantığı hakkında diğer geliştiricilerden geri bildirim almak çok hoşuma gidecek. Kendi uygulamalarınızda “hayalet veri” problemiyle nasıl başa çıktınız?
Kaynak: Orijinal Makale



