Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhaba,

E-ticaret yaparken büyük bir platform olacak şekilde düşündüğünüz de resimleri laravel ile yükleyip aynı sunucu da saklamak ne kadar performansı etkiler sizce? Resim optimize boyutlar çok büyük olmayacak ama yarın bir gün 10.000 adet ürün olduğun da siteyi yavaşlatma olasılığını sizce nedir?

Ve resmi yüklerken başka yerde tutma nasıl yapılır bu konuda bilginiz var mı?

  • @dodiş#31764 Laravel Storage kullanacağınız için onun S3 desteği var. Amazon S3 yanında S3 uyumlu bir uzak dosya sistemi de kullanabiliyorsunuz (DigitalOcean Spaces mesela. Aylık $5, 250GB alan 1 TB transfer. Amazon ise GB başına $0,0245 istiyor). config/filesystems.php içinde ayarları yaptıktan sonra zaten normal yükleme yapıyorsunuz, S3'e gönderme/alma işini Laravel hallediyor. Bu şekilde başka yerde tutmuş oluyorsunuz:
    https://laravel.com/docs/9.x/filesystem

    Bu da kendi S3 sunucunuzu kurmak için ama elinizde atıl bir sunucu yoksa S3 ya da Spaces daha uyguna gelir diye tahmin ediyorum:
    https://github.com/minio/minio

    Bunun haricinde CDN kullanabilirsiniz. Bir CDN üyeliği aldıktan sonra ASSET_URL değeri için CDN adresini yazmanız yeterli. Bunu yaptığınızda, {{ asset('products/1145/cover.jpg') }} yazdığınızda domain.com/storage/products/1145/cover.jpg yerine eu-2.account.cdnservice.com/storage/products/1145/cover.jpg gibi bir adresle değiştiriyor, tarayıcı istekte bulunduğunda servis sizin siteden bu dosyayı bulup kendi içine aktarıyor ve bundan sonra kendisi servis ediyor, her ne kadar resimler sizde hala yer kaplasa da sizin bandwidth etkilenmemiş oluyor. Bazı CDN servislerinin S3 ekleme özellikleri de var sanırım, dosyaları oradan kendi çekiyor vs.

    20 bin ürün olsa, her birinin 700 kb toplam resmi olsa (duruma göre bu 7-8 resim de edebilir 1-2 de) 13 GB yer kaplar ki bu çok büyük bir rakam değil ama yedekleme işi önemli. S3 vs olursa o konularda rahat olursunuz.

@dodiş#31764 Laravel Storage kullanacağınız için onun S3 desteği var. Amazon S3 yanında S3 uyumlu bir uzak dosya sistemi de kullanabiliyorsunuz (DigitalOcean Spaces mesela. Aylık $5, 250GB alan 1 TB transfer. Amazon ise GB başına $0,0245 istiyor). config/filesystems.php içinde ayarları yaptıktan sonra zaten normal yükleme yapıyorsunuz, S3'e gönderme/alma işini Laravel hallediyor. Bu şekilde başka yerde tutmuş oluyorsunuz:
https://laravel.com/docs/9.x/filesystem

Bu da kendi S3 sunucunuzu kurmak için ama elinizde atıl bir sunucu yoksa S3 ya da Spaces daha uyguna gelir diye tahmin ediyorum:
https://github.com/minio/minio

Bunun haricinde CDN kullanabilirsiniz. Bir CDN üyeliği aldıktan sonra ASSET_URL değeri için CDN adresini yazmanız yeterli. Bunu yaptığınızda, {{ asset('products/1145/cover.jpg') }} yazdığınızda domain.com/storage/products/1145/cover.jpg yerine eu-2.account.cdnservice.com/storage/products/1145/cover.jpg gibi bir adresle değiştiriyor, tarayıcı istekte bulunduğunda servis sizin siteden bu dosyayı bulup kendi içine aktarıyor ve bundan sonra kendisi servis ediyor, her ne kadar resimler sizde hala yer kaplasa da sizin bandwidth etkilenmemiş oluyor. Bazı CDN servislerinin S3 ekleme özellikleri de var sanırım, dosyaları oradan kendi çekiyor vs.

20 bin ürün olsa, her birinin 700 kb toplam resmi olsa (duruma göre bu 7-8 resim de edebilir 1-2 de) 13 GB yer kaplar ki bu çok büyük bir rakam değil ama yedekleme işi önemli. S3 vs olursa o konularda rahat olursunuz.

    mgsmus Anladım abi bilgiler için çok teşekkür ederim, fakat şöyle bir şey daha eklemek istiyorum.
    Ben upload için kütüphane kullanıyorum spatie media library onunda kendine özel tablosu var mesela direkt kolayca ulaşıyorum, ayrıştırma yapabiliyorum vs. Bu S3 sistemine amazona geçince bu işler yine bu kütüphanedeki gibi işler mi? Daha mı zorlaşır? Bu kütüphaneyi kullanmaya devam edebilir miyim biliyor musunuz?

    @dodiş#31767 O da S3 destekliyor, sorun olmaz. Disk ayarı yapmanız yeterli.

    @dodiş#31764 merhaba
    Ben her ihtimale karşı her zaman dosyaları, resimleri veya videoları filesystem.php içinde yapılandırdığım ftp ayarları ile her zaman farklı domain altında CDN yapıyorum. Orjinal script paketi şişirmiyorsuz.

      @dodiş#31778 merhaba
      Öncelikle CDN olarak kullanacağınız bir domain belirleyin. Bu domain için bir subdomain açın ve FTP oluşturun daha sonra laravel storage ile bu domaine FTP ile bağlanın yüklenen dosyalar burada toplansın.