Asp.Net Core MinIo kullanımı

Minio Nedir?

MinIO, Amazon S3 uyumlu server taraflı bir yazılım depolama aracıdır, resim, video, log dosyaları, yedekleme vb. veri türlerini depolamaya yarar.

Geliştirme yaptığım ortam

  • Windows 10
  • Asp.net Core 3.1

MinIo’yu yükleme ve ayağa kaldırma işlemleri

Öncelikle şu linkten minIo’yu indiriyoruz. Mevcut link windows için çalışmakta linux ve macos gibi platformlar için şu linkten yararlanabilirsiniz.

MinIo’yu indirdikten sonra yüklenen konumdan cmd’yi çalıştırıyoruz. Exenin olduğu klasörde test adında bir alt klasör açtım dosyaları buraya yüklenecek.

minio default olarak kullanıcı adını ve şifresini minioadmin olarak ayarlıyor. Şifreyi değiştirmek için aşağıdaki komutları kullanabilirsiniz

MinIo aşağıdaki komut ile ayağa kalkacaktır.

127.0.0.1:9000 adresinden MinIoya erişebilirsiniz

Minio’ya testbucket adında bucket ekliyoruz.

.Net Core Projelerinde Kullanımı

İlk olarak Amazon.S3 SDK kurulumu yapalım.

appsettings.json‘a minio ayarlarımızı kaydedelim

Dosya yükleme ve getirme işlemini yapacak servisi yazalım

FileOperation classının constructor’ında ilgili ayarlarımızla beraber clientı oluşturalım.

Dosya Yükleme Metotu:

Kaydedeceğimiz her dosyanın bir unique(eşşiz) bir ismi olmalı, dosya ismini veritabınında tuttuğumuz için keye direkt guid atatım isterseniz guid ile dosyanın ismini karıştırıp kaydedebilirsiniz.

Dosyayı çağırma metotu:

İligli servisleri kullanmadan önce startup.cs’ye kaydedelim

Basit bir UI ile dosya yükleme ve görüntüleme işlemleri yapalım

Entity:

File adında bir entity ile dosyanın ismi, keyi ve türünü tutuyoruz.

Controller:

View:

Post Controller:

bu işlemler ile başarılı bir şekilde dosyalarımızı yükledik. Şimdi de görüntüleme işlemine bakalım

İki adet ActionResultımızı var biri AllImages(), türü png olan resimleri listeliyor, diğeri AllPdf() ise türü pdf olan dosyaları listeliyor

AllImages View:

AllPdf View:

Başka bir yazıda görüşmek üzere 🙂

BUNLARI DA BEĞENEBİLİRSİNİZ...

Yorum Bırakın

E-mail adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmiştir.

tr_TRTurkish