Rehberler

Uygulamanıza Dosya Yüklemeleri Nasıl Eklenir: Depolama, Sınırlar ve Güvenlik

Uygulamanıza dosya yüklemelerini eklemek için dosyaları nesne depolamada (bir bucket) saklayın, sunucunuzun diskinde veya veritabanınızda değil; veritabanında dosyanın anahtarı, adı, boyutu, türü ve sahibiyle birlikte küçük bir kayıt tutun. Dosya boyutunu ve türünü sunucuda kontrol edin, dosyaların herkese açık mı (ürün fotoğrafları gibi) yoksa özel mi (faturalar gibi) olduğuna baştan karar verin ve özel dosyaları yalnızca kimin istediğini kontrol ettikten sonra sunun. Bir yapay zeka uygulama oluşturucusunda yükleme özelliğini tek bir promptla tarif edebilirsiniz; önemli olan, dosyaların yeniden dağıtımdan sonra kalıcı olduğunu ve yanlış kişinin açamadığını test etmektir.

Hangi tür yüklemelere ihtiyacınız olduğuna karar verin

İnşa etmeden önce üç soruyu yanıtlayın:

  1. Hangi dosyalar? Profil fotoğrafları, ürün görselleri, PDF’ler, elektronik tablolar, ses, video. Bu tür ve boyut sınırlarını belirler.
  2. Kim görebilir? Herkes (herkese açık bir galeri) veya yalnızca yükleyen ve yöneticiler (sözleşmeler, kimlik belgeleri, müşteri dosyaları).
  3. Yüklemeden sonra ne olur? Sadece saklanır, önizleme gösterilir, görseller yeniden boyutlandırılır veya içerikleri okunur.

Herkese açık görseller ve özel belgeler farklı kurulumlar gerektirir; bunu önce netleştirin.

Dosyaların nerede durması gerekir

SeçenekNasıl çalışırUygun olduğu durumDikkat edilecekler
Nesne depolama (bucket)Bu iş için tasarlanmış bir serviste saklanan dosyalar; veritabanınız bir anahtar veya URL tutarHemen hemen her uygulamaErişim kuralları doğru ayarlanmalı
Platformun sağladığı depolamaUygulama oluşturucunuz veya barındırıcınız sizin için bir bucket etkinleştirirO platformda inşa edilen uygulamalarLimitler ve fiyatlandırma platformu izler
Sunucu diskiDosyalar uygulama sunucusunun dosya sistemine yazılırYalnızca yerel geliştirmeYeniden başlatma veya yeniden dağıtımda sıklıkla silinir
VeritabanındaDosya baytları bir tabloda saklanırNeredeyse hiçbir zamanVeritabanını şişirir, yedeklemeyi yavaşlatır
Üçüncü taraf yükleme widget’ıBarındırılan bir yükleyici servisi tüm akışı yönetirAğır medya, görsel dönüşümleriBaşka bir sağlayıcı, hesap ve fatura

Çoğu uygulama için nesne depolama artı bir veritabanı kaydı doğru cevaptır. Veritabanı satırı, uygulamanızın sorguladığı şeydir (“bu kullanıcının belgelerini göster”); bucket yalnızca baytları tutar.

Herkese açık ve özel dosyalar

  • Herkese açık dosyalar (ürün fotoğrafları, blog görselleri, avatarlar) herkese açık bir URL’den sunulabilir. Bağlantıya sahip herkes açabilir; bu tür içerik için sorun değildir.
  • Özel dosyalar (faturalar, sözleşmeler, tıbbi veya kimlik belgeleri, müşteri teslimatları) asla tahmin edilebilir herkese açık bir URL’ye sahip olmamalıdır. Sunucu, oturum açmış kullanıcının dosyanın sahibi olduğunu veya izni olduğunu kontrol eder, sonra dosyayı akış olarak geri gönderir ya da kısa süreli bir imzalı URL döndürür: yalnızca kısa bir süre çalışan bir bağlantı.

Yaygın ve ciddi bir hata: özel dosyaların tahmin edilebilir adlarla herkese açık bir bucket’ta saklanması. /uploads/invoice-102.pdf adresini tahmin eden biri, başkasının faturasını açar.

Örnek promptlar

Herkese açık bir görsel yüklemesi:

Yöneticilerin ürün başına en fazla 5 ürün fotoğrafı yüklemesine izin ver. Her biri en fazla 5 MB olan JPG, PNG ve WebP kabul et. Dosyaları dosya depolamasında sakla, her dosyanın anahtarını, boyutunu ve sırasını bir product_images tablosunda kaydet ve küçük resimleri bir kaldırma düğmesiyle göster. Tür ve boyutu yalnızca tarayıcıda değil, sunucuda doğrula.

Özel bir belge yüklemesi:

Oturum açmış müşteriler için bir Belgeler sayfası ekle. Müşteriler en fazla 20 MB’lık PDF yükleyebilsin. Dosyalar özel olsun: dosya depolamasında sakla, sahip ID’sini, orijinal dosya adını, boyutu ve yükleme zamanını bir documents tablosunda tut ve yalnızca sahibinin ve yöneticilerin indirmesine izin ver. İndirmeler izni kontrol eden bir sunucu rotasından geçsin. Bu dosyalar için asla herkese açık bir URL verme.

Yararlı takipler:

Yükleme sırasında bir ilerleme çubuğu ve dosya çok büyük ya da yanlış türdeyse net bir hata göster.

Bir belge satırı silindiğinde saklanan dosyayı da sil.

Adım adım

  1. Tür ve boyut sınırlarını seçin: her yükleme alanı için. Belirli olun: “20 MB’a kadar PDF”, “belgeler” değil.
  2. Depolamayı etkinleştirin. Bir yapay zeka oluşturucusunda yükleme isteyin, o kurulumu yapar; başka yerlerde bir bucket oluşturun ve kimlik bilgilerini sunucu tarafı gizli bilgiler olarak ekleyin.
  3. Dosya kayıtları için bir veritabanı tablosu oluşturun: ID, sahip, depolama anahtarı, orijinal ad, tür, boyut, oluşturulma zamanı.
  4. Sunucuda yükleme rotasını oluşturun: kullanıcının oturum açtığını kontrol edin, tür ve boyutu kontrol edin, güvenli bir depolama anahtarı üretin (kullanıcının dosya adını değil), dosyayı kaydedin, kaydı ekleyin.
  5. İndirme veya gösterme yolunu oluşturun: herkese açık dosyalar için herkese açık URL; özel olanlar için izin kontrollü bir rota veya imzalı URL.
  6. Arayüzü oluşturun: dosya seçici, isterseniz sürükle bırak, ilerleme, önizlemeler, hatalar.
  7. Silmeleri yönetin: bir kaydı kaldırmak, saklanan dosyayı da kaldırsın.
  8. Test edin: yükleyin, yenileyin, yayınlayın veya yeniden dağıtın, dosyanın hâlâ yüklendiğini kontrol edin. Sonra başka bir kullanıcıyla giriş yapıp ilk kullanıcının özel dosyasını açmayı deneyin.

Sık yapılan hatalar

  • Yüklemeleri sunucunun diskine yazmak. Geliştirmede çalışır, sonra yeniden başlatma veya yeniden dağıtımdan sonra dosyalar kaybolur.
  • Tarayıcı kontrollerine güvenmek. Dosya girişindeki “accept” ayarı bir ipucudur, güvenlik değildir. Tür ve boyutu sunucuda kontrol edin.
  • Kullanıcının dosya adını depolama anahtarı olarak kullanmak. Adlar çakışır ve tuhaf karakterler içerebilir. Benzersiz bir anahtar üretin ve orijinal adı ayrıca saklayın.
  • Özel dosyalar için herkese açık bucket’lar. Yukarıda gördünüz; haberlere çıkan hata budur.
  • Her dosya türüne izin vermek. Bazı kurulumlarda alan adınızdan sunulan HTML veya SVG dosyaları komut çalıştırabilir. Yalnızca ihtiyacınız olan türleri kabul edin.
  • Boyut sınırının olmaması. Tek bir dev yükleme depolama payınızı tüketebilir veya isteği zaman aşımına uğratabilir.
  • Yetim dosyalar. Veritabanı satırını silip dosyayı silmemek, ödediğiniz depolamayı yavaşça doldurur.
  • Mobili unutmak. Telefon fotoğrafları büyük olabilir ve HEIC gibi formatlarda olabilir; kabul edip etmemeye veya dönüştürmeye karar verin.

Kontrol listesi

  • Dosyalar sunucu diskine veya veritabanına değil, nesne depolamaya gidiyor
  • Her dosyanın sahip, anahtar, ad, tür ve boyut bilgisi olan bir veritabanı kaydı var
  • Tür ve boyut sunucuda kontrol ediliyor
  • Depolama anahtarları üretiliyor, dosya adından alınmıyor
  • Özel dosyalar yalnızca bir izin kontrolünden sonra sunuluyor
  • Başka bir kullanıcı, bağlantıyla bile olsa özel dosyalarınızı açamıyor
  • Bir kaydın silinmesi dosyayı da siliyor
  • Dosyalar yayınlamadan veya yeniden dağıtımdan sonra hâlâ yükleniyor
  • Yükleme hataları, telefonda dahil, net gösteriliyor

Mythex’te dosya yüklemeleri

Mythex, uygulamanıza yükleme gerektiğinde bir proje için dosya depolamayı otomatik olarak etkinleştirebilir; bir bucket’ı elle sağlamanız gerekmez. Sohbette /storage yazabilirsiniz. Free ve Pro planlarda kullanılabilir; Free planda 1 GB sınırı vardır ve durumunu Ayarlar → Depolama bölümünde görebilirsiniz.

Dokümanlar, yayınlanmış barındırmanın kalıcı bir yerel dosya sistemi olmadığını açıkça belirtir; bu yüzden diske kaydetmek yerine ajandan platform depolamasını kullanmasını isteyin. Saklanan dosyalar ve indirmeler, boyutuna ve ne kadar indirildiğine göre kredi bakiyenizden ödenir; Pro, Free fiyatının yarısını öder. Bkz. dokümanlarda Dosya depolama.

Yüklemeler genellikle dosya kayıtları için bir veritabanı ve özel dosyalar için giriş ile birlikte gider. Müşterilerin belge alışverişi yaptığı bir yer inşa ediyorsanız, müşteri portalı nasıl oluşturulur rehberine bakın ve yayından önce güvenlik kontrol listesinden geçirin.

Sorular

Yüklenen dosyalar nerede saklanmalı?

Nesne depolamada (dosyalar için tasarlanmış bir servis, çoğu zaman bucket olarak anılır), uygulama sunucusunun diskinde veya veritabanının içinde değil. Veritabanınızda yalnızca dosyanın anahtarını veya URL’sini ve ad, boyut, sahip gibi ayrıntıları saklayın.

Yayınladıktan veya yeniden dağıttıktan sonra yüklenen dosyalarım neden kayboluyor?

Çoğu barındırma platformu kalıcı bir yerel disk tutmaz: uygulama yeniden başladığında veya yeniden dağıtıldığında diske yazılmış dosyalar kaybolur. Yüklemeleri bunun yerine nesne depolamaya kaydedin.

Yüklenen dosyaları özel tutmak için ne yapmalıyım?

Dosyaları herkese açık okunabilir yapmayın. Sunucunuz, oturum açmış kullanıcının dosyayı görmeye yetkili olup olmadığını kontrol etsin; sonra dosyayı gönderin veya kısa süreli imzalı bir bağlantı döndürün.

Mythex dosya yüklemelerini destekliyor mu?

Evet. Uygulama yüklemeye ihtiyaç duyduğunda Mythex, bir proje için dosya depolamayı etkinleştirebilir; Free planda 1 GB sınırıyla, Free ve Pro planlarda kullanılabilir. Yükleme özelliğini ajandan isteyebilir veya /storage yazabilirsiniz.

Mythex · Pricing · Yapay zekayla her şeyi yapın · Web sitesi ve uygulama şablonları · Mythex karşılaştırmaları · Yapay zekayla uygulama geliştirme sözlüğü · Yapay zekayla uygulama geliştirme için ücretsiz araçlar · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)