Active Storage localde kullanmak mümkün mü? Alternatif çözüm ne olabilir?

Merhaba arkadaşlar. Epey dosya ile haşır neşir olunan bir proje üzerinde çalışıyorum. File upload için active storage kullanıyorum.

Dosyalarımızı kendi sunucularımızda tutmamız gerekli. Dolayısıyla bu gemi kullanmaya devam edebilir miyim?

  • Rails dokümantasyonuna göre ActiveStorage için sadece test ve development ortamında local kullanımdan bahsediliyor. Production ortamı için s3, azure veya google cloud öneriliyor.

  • Başka platformdaki bir diğer öneriye göre MINIO hizmetini (s3 destekli) locale kurup kullanmak öneriliyor.

Tecrübesi yada herhangi bir önerisi olan var mı?

Ben hiç denemedim ama ActiveStorage::Service‘i extend ederek kullanabilmen gerekir: Active Storage Overview — Ruby on Rails Guides

Prod’da da kullanabilirsin local service’i. Fakat best practice değil o yüzden önerilmiyor. Yarın öbür gün sunucu değişmeniz gerektiğinde storage folder’ını da taşımanız gerekecek ayrıca buraya yüklenen dosyalar sürekli disk’i size olarak ve io olarak kullanacak buda uygulama performansına negatif yönde etki edecektir. Tavsiyem minio’yu kurmanız olur fakat küçük bir proje ise production’da local service’i kullanabilirsiniz. Şu şekilde konfigüre edebilirsiniz;

config/environments/production.rb içinde şu şekilde konfigürasyonu ekleyin veya güncelleyin.

config.active_storage.service = :local

Ayrıca eğer uygulamanız container içinde çalışıyorsa storage dizininin container dışında ana makina üzerinden mount edilmesini unutmayın yoksa her container restart da dosyalarınızı kaybedersiniz.

4 Likes

Selam,
Muhammet’in söylediklerini söylemeye gelmiştim ben de. :slight_smile:
Hem güvenlik açısından hem de Muhammet’in dediklerinden dolayı local’i kullanma konusunda çekiniyorum.

Kaybolduğunda canınız sıkılacaksa ben de minio ya da block storage çözümlerinden birini kullanmayı şart görüyorum. Scaleway’de 75GB’a kadar ücretsizdi hatta.

Epey dosya diyince zorunluluk olarak düşünüyorum hatta. Çünkü veriyi yönetmesi, taşıması bi sürü şey yapması çok karın ağrısı. Yok disk büyüdü, yok şu oldu.

2 Likes

Öncellikle katkılarınız için teşekkürler. Projemizde şu an 300gb dosya var ve giderek artıyor. Günlük 2 gb gibi bir veri üretimi söz konusu. Günlük üretim daha fazla artmaz. İlerleyen süreçte azalarak devam edecek. Tüm dosyaların bir kopyası üretildiği yerde ayrı bir sunucuda tutuluyor.
Kullanıcılar uygulamaya bağlanıp seçtiği dosyaları yüklüyor ve dosyalar ile ilgili indeks yapıyor. Dolayısıyla indeks ile ilişkili dosyaların kaybolmaması çok önemli. Şimdilik Minio ile ilerleme bana olumlu gözüküyor. :slight_smile:

1 Like