BLOB Veritabanı
-
Merhaba.
Çalışmakta olduğum projede görüntü dosyaları da saklamam gerekiyor. Bu yüzden filesystem harici mantıklı bir çözüm varsa işte bana lazım olan da o.
Neden ilk tercihim filesystem değil?
1) Görüntü dosyaları ile birlikte podo da tutmam gerekiyor. İşin raconu dosya sistemi olsa da aynı nesneye ait verilerin mümkün mertebe aynı ortamda bulunması iyi yazılım prensibi.
2) Proje taşınabilir olması gerekiyor. Taşınırken, yedek alınırken sıkıntı çıkarmamalı.
3) Bağımlılığı az olmalı.
Böyle ufak bir mucize var mıdır?
-
rezerv
-
azure düsünürsen yaz hocam bana, bendeki azure hesabini kullanabilirsin..
-
unbalanced bunu yazdı
azure düsünürsen yaz hocam bana, bendeki azure hesabini kullanabilirsin..
Çok teşekkürler Hocam. Self-hosted olarak kalması gerekiyor.
Kısa araştırmalarıma göre anlık çözüm mongodb olarak görünüyor. https://developer.mongodb.com/how-to/storing-large-objects-and-files Şimdi sorun react-php için asnyc driver bulmada. Gerçi çok da problem değil. React-php şimdilik multiplatform event timer için kullanılacak. Önceki gibi mono'ya bağlı kalmak istemiyorum.
-
gridfs'e ben de baktim hocam ama hic kullanmadim öyle biraz arastirmada kaldi.. hatta burdaki konuya yazmistim
https://www.tahribat.com/forum/resim-ve-dosyalari-webde-saklama-245431
diger önerilere de bak istersen belki ise yarar..
gridfs'i denedikten sonra performans hakkinda bilgi verirsen iyi olur. Ben de ona gecebilirim. Suan azure blob storage kullanmayi düsünüyorum.. oraya upload ediyorum ve direk html linkini alabiliyorum, o linki db ye yaziyorum ve web projesinde resimleri gösterirken o linki gösteriyorum.. mantik simdilik böyle.. Azure 5 gb 12 ay boyunca ücretsiz kullanim veriyor.. Bana yeterli bir büyüklük
ayrica nodejs düsünürsen burda async olarak bir paket var hocam
https://www.npmjs.com/package/gridfs-promise
-
nodejs benim öğrenme eğrimin canına okuyabilir Hocam.
gridfs ile performans konusunda referans olabilecek bir şey ortaya çıkacağını sanmıyorum maalesef. Benimki iot projesi. Her nodedan günlük en fazla 144 adet 10bit 2MP görüntü gelecek. Saklamak istediklerim de bunlar, çünkü ileride görüntü işleme vs. için de kullanılacak. Belki gerçek zamanlı görüntü işleme de olabilir.
-
dosya boyutu 16 mb'den büyük degilse mongodb kullanilabilir.. Biraz bu konuda okudum, db'ye kaydetme benim icin cok mantikli degil ama senin durumun icin sorun olacagini sanmiyorum.. test icin virtual machine vs lazimsa ya da cloud mongodb, cassandra, sql (azure) haber verirsin.. kolay gelsin
-
Hocam istiyorsun ki hem ayranımız dökülmesin hem de tatsız şeyler yaşanmasın. İkisinden aynı anda kaçamıyorsun pek.
Metadata ile birlikte datanın kendisini tutmak ile referansını tutmak arasında ne gibi bir fark olabilir ki endişe yaratan? Database'de BLOB tutmaktansa ben olsam CDN ya da S3 gibi çözümlere bakardım önce.
Mutlaka göz atmışsındır ama yine de buraya iki tane referans link bırakayım. Biri 10 yıl kadar önce stackoverflow'da tartışılmış, çok güzel yorumlar yazılmış bir topic:
https://stackoverflow.com/q/3748/637724
Diğeri daha güncel, iki seçeneğin artılarını sıralamış:
https://medium.com/@vaibhav0109/should-i-use-db-to-store-file-410ee22268c7
-
dosyaları veritabanında tutmak bir açıdan çok mantıklı ve kolay diğer yandan çok riskli. ilk günlerde herşey güllük gülistanlık olurken veritabanı boyutu şiştiğinde "naptım ben aq" diye saç baş yolduracak değişiklikler yapman gerekebiliyor. Biz bir projemizde object storage kullanmıştık adı aklıma gelmiyor ama opensource docker üzerinde çalışıyordu. Bir kere kurduk bir daha da bakmadık yıllardır takır takır çalışır kerata. Ayrıca object storage kullanman metadata saklamanda fayda sağlar, object storage olduğu için ekstra meta ekleyebiliyorsun.
buldum şuydu kullandığımız: https://hub.docker.com/r/minio/minio/
TeRRoR tarafından 07/May/20 10:03 tarihinde düzenlenmiştir -
TeRRoR bunu yazdı
dosyaları veritabanında tutmak bir açıdan çok mantıklı ve kolay diğer yandan çok riskli. ilk günlerde herşey güllük gülistanlık olurken veritabanı boyutu şiştiğinde "naptım ben aq" diye saç baş yolduracak değişiklikler yapman gerekebiliyor. Biz bir projemizde object storage kullanmıştık adı aklıma gelmiyor ama opensource docker üzerinde çalışıyordu. Bir kere kurduk bir daha da bakmadık yıllardır takır takır çalışır kerata. Ayrıca object storage kullanman metadata saklamanda fayda sağlar, object storage olduğu için ekstra meta ekleyebiliyorsun.
buldum şuydu kullandığımız: https://hub.docker.com/r/minio/minio/
minio baya güzele benziyor hocam. Hangi sistemde calistiriyorsunuz? performansi nasil? statik filelar icin nasil? yani websitemdeki imageleri buradan cekmek icin uygun mudur? biraz tecrübelerini paylasirsan sevinirim..
-
Sunucudan bağımsız bir ortak disk altında -birkaç sunucunun bağlı olduğu sadece görüntüleri içeren anadisk (NFS deniyor sanırım) görüntü dosyalarını klasik metot ile tutuyoruz. Gerekli bilgiler veritabanında var.
Fakat bunu dışarıya almak istediğimizde ya da herhangi bir client bunu yapmak istediğinde arada bir tool kullanıyoruz. Bu tool bizim oluşturduğumuz kendi dosya formatımıza export ediyor veriyi. Örn: image.neverland gibi.
Kendi dosya formatımız içerisinde byte halinde saklı; metadata, görüntüler ve görüntüye ait objeler var.
Yani veri sistemden dışarı çıktığında bizim dosya uzantımızla ve bizim encoding metotumuzla bir bütün halinde çıkıyor. Haliyle bizim decoding programımız olmadan görüntülenemiyor, bütün olarak.
neverland tarafından 08/May/20 03:08 tarihinde düzenlenmiştir