20 Oca 2025·7 dk okuma

Ölçekli dosya yüklemeleri: doğrulama, depolama ve erişim

Ölçekli dosya yüklemeleri, kullanıcı dosyalarını korumak için net doğrulama kuralları, düzenli depolama yolları, süresi dolan indirme linkleri ve güçlü izinler gerektirir.

Ölçekli dosya yüklemeleri: doğrulama, depolama ve erişim

SSS

Gerçek kullanıcılar için dosya yüklemeye başlamadan önce önce neyi kararlaştırmalıyım?

Gerçekten beklediğiniz kategorileri yazın: avatarlar, faturalar, sözleşmeler, ticket ekleri, dışa aktarımlar vb. Her kategori için kimlerin yükleyebileceğini, kimlerin görüntüleyebileceğini, kimlerin değiştirebileceğini veya silebileceğini, paylaşımın süresinin dolup dolmayacağını ve ne kadar saklanacağını belirleyin. Bu kararlar veri modelinizi ve izin kontrollerinizi yönlendirir, böylece her şeyi yeniden inşa etmek zorunda kalmazsınız.

Hangi doğrulama kuralları en fazla yükleme sorununu önler?

Bir allowlist kullanın ve hem dosya uzantısını hem de içerikten algılanan MIME tipini kontrol edin. Amaç başına açık boyut sınırları koyun ve gerekliyse görüntü boyutları veya PDF sayfa sayısı gibi derinlemesine kontroller ekleyin. Dosyaları bir üretilmiş ID ile yeniden adlandırın ve orijinal adı metadata içinde saklayın; böylece çakışmalar ve tehlikeli dosya adlarından kaçınırsınız.

Neden yalnızca dosya uzantısını veya yalnızca MIME tipini kontrol etmek yeterli değil?

Uzantılar kolayca değiştirilebilir, MIME tipleri ise cihazlar ve tarayıcılar arasında tutarsız olabilir. İkisini birlikte kontrol etmek birçok basit sahtekarlığı yakalar, ancak daha yüksek riskli yüklemeler için sunucu tarafında dosya imzası (magic bytes) doğrulaması da yapmalısınız. Başarısız olanları engelleyin ve indirmelere izin vermeyin.

Yüklemeler ve meta veriler için güvenli bir veri modeli örüntüsü nedir?

Önce bir veritabanı kaydı oluşturun ve bir upload ID döndürün, sonra baytları bu ID ile depolamaya yükleyin ve tamamlandığını doğrulayın. Bu yaklaşım, sahibini ve amacını bilmediğiniz gizemli dosyaların depoda kalmasını engeller ve izinleri byte'lar hareket etmeden önce uygulamanıza olanak tanır.

Depolamayı uzun vadede yönetilebilir kılmak için nasıl organize etmeliyim?

Depolamayı varsayılan olarak özel tutun ve erişimi uygulamanızın izin mantığıyla kontrol edin. Nesne anahtarlarını kişisel bilgileri içermeyecek şekilde tahmin edilebilir ama opak tutun: tenant/workspace ID + opak upload ID gibi. İnsan tarafından okunabilir ayrıntıları veritabanında saklayın. Orijinaller ile türevleri (önizlemeler, küçük resimler) ayrı prefix'lerde tutun, böylece saklama ve izin politikalarını ayrı uygulayabilirsiniz.

Yüklenen dosyalar için izinleri en güvenli şekilde nasıl yönetmeliyim?

Meta veri erişimi ile byte erişimini ayrı izinler olarak ele alın. Pek çok kişi bir dosyanın var olduğunu görebilir ama indirmeye yetkili olmayabilir. İndirilmeler için varsayılan olarak reddetme kuralı uygulayın, hassas belgeler için erişimleri kaydedin ve tahmin edilemez URL’ye güvenerek güvenlik sağlamayın.

İmzalı URL'ler mi yoksa token tabanlı indirme uç noktası mı kullanmalıyım?

Signed URL'ler hızlı ve basittir, ancak bağlantı paylaşıldıktan sonra iptal etmek zordur. Token tabanlı bir indirme uç noktası ise her istekte izin kontrolü yapmanıza ve token'ları hemen geçersiz kılmanıza olanak verir. Pratikte, kısa süreli imzalı linkler ve sıkı kapsam (tek dosya, tek kullanıcı, tek eylem) riski azaltır.

Kesintiye uğrayan yüklemeler, tekrarlar ve çoğaltılmış dosyalar nasıl ele alınmalı?

Tekrarları normal davranış olarak tasarlayın: mobil bağlantılar kopar, kullanıcılar iki kere dokunur ve yüklemeler çoğalır. Önce bir upload ID üretin, yüklemeyi o ID'ye kabul edin ve onay adımını idempotent yapın; böylece tekrarlanan onaylar ekstra kopya yaratmaz. Daha da azaltmak isterseniz, yüklemeden sonra checksum saklayıp aynı içeriğin tekrar yüklenmesini tespit edebilirsiniz.

Depolama şişmesini ve gereksiz dosyaları önlemek için ne gibi temizleme işlerine ihtiyacım var?

Terk edilmiş pending kayıtlar birikir; bu yüzden ilk günden temizleme planı koyun. Tamamlanmamış pending kayıtları ve ilgili depolama objelerini silin, blocklanmış öğeleri sadece inceleme için gerekli süre kadar saklayın ve değiştirilmiş dosyalar için uyum ihtiyaçlarınıza göre bir saklama penceresi belirleyin. Ayrıca önemli olayları (yükleme, doğrulama, indirme, silme) kaydedin ki destek hızlıca inceleyebilsin.

Bu yükleme kurallarını AppMaster içinde tutarlı şekilde nasıl uygularım?

Yüklemeleri PostgreSQL'de kendi varlığı olarak modelleyin: status, owner, scope ve purpose alanları olsun. Kuralları tek bir backend akışında uygulayın ki web ve mobil aynı şekilde davransın. Doğrulama ve doğrulama sonrası adımlarını bir Business Process içine koyun; tüm yükleme yolları aynı allowlist, limit ve durum geçişlerini uygulasın. Paylaşım gerektiğinde kısa ömürlü indirme token'ları üreten daha sıkı bir Business Process ile indirmeleri servis edin.

Başlaması kolay
Harika bir şey yaratın

Ücretsiz planla AppMaster ile denemeler yapın.
Hazır olduğunuzda uygun aboneliği seçebilirsiniz.

Başlayın
Ölçekli dosya yüklemeleri: doğrulama, depolama ve erişim | AppMaster