Yazılım Mimarileri ve Tasarım Desenleri Üzerine

Azure Storage Serisi #7 – Azure Blob Storage ve Asp.NET Core İle Kullanımı

azure-storage

Merhaba,

Azure Storage Yazı Dizisinin bu yedinci makalesinde Azure Blob Storage’dan bahsedecek ve Asp.NET Core üzerinde nasıl kullanıldığını inceleyeceğiz.

Azure Blob Storage Nedir?

Azure Blob Storage, Microsoft’un bulut için dosya depolama servisidir. PDF, Image, MP3 vs. gibi farklı türdeki tüm dosyalar binary türde blob storage’a kaydedilebilir.

Azure Blob Storage Neden Tercih Etmeliyiz?

Azure Blob Storage’ı aşağıdaki durumlarda tercih edebilirsiniz.

Tüm bunlara istinaden Blob Storage, birden fazla instance olarak ayağa kaldırılan uygulamalarda dosyaları tek bir yerde depolamak ve böylece scale(ölçeklendirebilmek) edebilmek için kullanılmaktadır. Böylece dosyaların merkezi olmasını sağlamakta ve yönetilebilirlik seviyesi oldukça arttırılmaktadır.

Misal, Docker gibi sanallaştırma ortamlarında dosyaların tutulabilmesi için merkezi bir ortak nokta ayarlanabilmektedir. Bknz : .NET Core & Docker Yazı Dizisi Lakin Docker dışı durumlarda Blob storage hayat kurtaran bir çözüm sunmakta ve dosyaları ortak bir havuzda toplayabilmek için ekstradan kopyalama işlemlerine vs. gerek kalmaksızın daha efektif bir süreç sergilememizi sağlamaktadır.

Azure Blob Storage Kavramları Nelerdir?


Kavramsal açıdan Blob; jpg, png, avi, mp3 vs. gibi herhangi bir uzantılı dosyayı tarif eden bir terimdir. Azure tarafında dosya uzantısının hiçbir önemi yoktur. Azure sadece bynary datayı bilir ve bloblara kaydeder.

Azure Blob Storage; ‘Account’, ‘Container’ ve ‘Blob’ olmak üzere üç yapıdan meydana gelir.

‘Account’; Storage Account, datalar için Azure’da benzersiz bir isim alanı sağlamaktadır. Böylece depolanacak her nesnenin benzersiz hesap adını içeren bir adresi olacaktır.

Örnek bir account endpoint’i şöyle olmaktadır.
https://<account_name>.blob.core.windows.net

‘Container’; Blob’ları sarmalayacak klasörlerdir. Blob kaydetmeden önce container üretilmelidir. Bir account sınırsız sayıda container, bir container ise sınırsız sayıda blob barındırabilmektedir.

‘Blob’; Datanın yerleştirildiği yerdir. Yapısal olarak ‘Block Blobs’, ‘Append Blobs’ ve ‘Page Blobs’ olmak üzere üçe ayrılır.

Asp.NET Core İle Azure Blob Storage Kullanımı

Bir önceki Azure Table Storage ve Asp.NET Core İle Kullanımı başlıklı yazımızda, Table Storage’ı Asp.NET Core ile örneklendirebilmek için bir class library oluşturmuştuk. Benzer mantıkla burada da aynı şekilde bir geliştirmede bulunacağız.

Tüm bu işlemlerden sonra artık ilgili uygulama derlenip çalıştırılmalı ve istek gönderilmelidir.

Test Edelim

Upload Download
Getnames Delete
Setlog Getlog

Blob URL Üzerinden Dosyalara Erişim Nasıl Sağlanır?

Azure Blob Storage’da depolanan dosyalara url üzerinden erişebilmek için account endpoint’ini aşağıdaki gibi kullanabilirsiniz;
https://<account_name>.blob.core.windows.net/<container_name>/<file_name>

Tabi burada container seviyesinde erişime izin verilmesi gerekmektedir. Bunun için ‘Containers’ ekranına gelip ilgili container’ı seçtikten sonra ‘Change access level’ sekmesine tıklayınız.

Ardından ‘Public access level’ alanından ‘Container(anonymous read access for containers and blobs)’ seçeneğini işaretleyerek ‘Ok’ butonuna tıklamanız yeterlidir.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Not : Örnek projeyi indirebilmek için buraya tıklayınız. (Bir önceki Azure Table Storage başlıklı makalede irdelediğimiz örnek proje üzerinden geliştirme yapılmıştır.)

Mobil sürümden çık