C#'de Azure Depolama'ya Giriş
Azure Storage, Microsoft Azure tarafından sunulan temel bir hizmettir ve .NET teknolojileriyle birleştirildiğinde, bulutta dosya depolama ve alma için güçlü bir araç haline gelir. Derinlemesine kılavuzu "Intro to Azure Storage in C#" da, Tim Corey izleyicileri Azure Depolama Hesabı yapılandırmanın, Azure Blob Storage kurmanın ve bunu bir C# ASP.NET Core MVC projesine entegre etmenin adımlarında adım adım yürütür.
Bu makalede, Tim'in videosunu yakından izleyerek sürecin her aşamasını keşfedeceğiz, gerçek dünya Azure geliştirmesinde kullanılan kilit kavramları ve terminolojiyi tartışacağız.
Azure Depolama Fiyatlandırma ve Planlama
Tim, bir C# uygulamasında Azure Storage kullanmanın finansal verimliliğini açıklayarak başlar. Bir blob konteyneri kullanarak metin dosyalarını, resimleri veya ikili veriyi depoluyor olun, maliyet minimal kalır. Azure Fiyatlandırma Hesaplayıcısını tanıtır, performans katmanları, yedekli ayarlar ve veri işlemleri gibi seçilen özelliklere göre ücretleri tahmin etmek için kullanılabilir.
Tim, Azure portalında Genel Amaçlı v2 altında Block Blob Storage seçer ve sık erişilen dosyalar için sıcak erişim katmanını yapılandırır. Depolama hesabının, maliyetleri minimize ederek ancak güvenliği koruyarak yerel olarak yedeklenen depolama (LRS) kullandığından emin olur.
"1 GB data ve birkaç bin işlem depolayan bir demo uygulaması için maliyet, ayda 13 sente düşüyor," Tim açıklar.
Azure Depolama Hesabının Oluşturulması
Azure portalında, Tim yeni bir kaynak grubu ve karşılık gelen Azure Depolama Hesabını oluşturmayı gösterir. Adlandırma kuralları sıkıdır—depolama hesabı adları benzersiz, küçük harfli olmalıdır ve tire içeremez.
Kurulum sırasında, maliyetten tasarruf etmek için Coğrafi yedekli depolamayı devre dışı bırakır, prototipler veya yerel ortamlar üzerinde çalışan geliştiriciler için kritik bir ipucudur. Ayrıca, yalnızca gösterim amacıyla kapsayıcı seviyesinde anonim erişimi etkinleştirir—gerçek üretim ortamlarının güvenli erişim gerektirdiği konusunda uyarır.

Tim ayrıca erişim anahtarlarını, bağlantı dizisini ve depolama hesap adını kapsar—C# projeniz Azure kaynaklarına bağlandığında essential olanlar.
Azure Blob Depolama Alanını Anlamak
Tim, blob konteynerinin Azure depolama hesabınızda verileri organize etmek amaçlı nasıl kullanıldığını vurgular. Portal üzerinden yeni bir konteyner oluşturmakdan kaçınıp, bunun yerine kodda .NET için Azure SDK kullanarak oluşturmayı planlar.
Güvenli erişim anahtarlarının ve bağlantı dizisinin—hesap güvenlik ayarları altında görülebilir— uygulamada Azure depolama istemci kütüphanesiyle kimlik doğrulamak için kullanılacağını açıklar.
ASP.NET Core Projesine Başlama
Tim, Visual Studio'yu kullanarak bir .NET 9 MVC web uygulaması oluşturur. Razor Pages veya Blazor Server gibi herhangi bir UI tipi kullanılabilmesine rağmen, gösterim için MVC'yi seçer.
Secrets.json'da 19:35'te, hassas kimlik bilgilerini güvenli bir şekilde saklar:
bağlantı dizisi
depolama hesap anahtarı
konteyner adı
- depolama hesap adı

Tim, appsettings.json'un sırlar içermemesi gerektiğini, çünkü bu dosyanın, kaynak kodu depolarına taahhüt edildiğini açıklar. Bunun yerine, özellikle geliştirme sırasında, sırların Kullanıcı Gizli Anahtarları kullanılarak yerel olarak saklanması gerektiğini belirtir.
Gerekli NuGet Paketlerini Kurma
Azure Blob Depolama ile etkileşim için Tim, Azure.Storage.Blobs NuGet paketini kurar. Microsoft'un Azure SDK kullanarak özellikleri modüllerinin takdir eder, daha küçük, daha sürdürülebilir uygulamalar olanağı sağlar.

"Her şeyi çerçeveye yığmak yerine, şimdi Tam olarak ihtiyacınız olanı alıyorsunuz—NuGet üzerinden Azure Blob istemci kütüphanesi gibi," Tim işaret eder.
Azure Depolama için Seçenekler Desenini Yapılandırma
Daha sonra, Tim, konfigürasyondaki anahtarlara uyan bir POCO sınıfı (BlobStorageOptions) oluşturur. Merkezi ve test edilebilir yapılandırmayı sağlayan seçenekler desenini kullanarak konfigürasyonu güçlü tipte nesnelere bağlar.
Bu yapılandırma, Azure yapılandırmasını, farklı ortamlar arasında sürekli olarak kullanması için .NET uygulamasına kolaylık sağlar.
Blob Depolama Hizmet Mantığını Uygulama
Tim, DataAccess adlı yeni bir klasör ekler ve BlobStorage.cs adlı bir sınıf uygular. İçinde, konfigürasyonu IOptions
İki ana async yöntemi oluşturur:
Dosya Yükleme Mantığı
UploadFileAsync yöntemi:
MVC ön yüzünden bir IFormFile kabul eder.
Bağlantı dizisini ve konteyner adını kullanarak Azure Depolama SDK'dan bir BlobContainerClient oluşturur.
Mevcut bir konteyner olup olmadığını kontrol eder veya yoksa yeni bir konteyner oluşturur.
Kapsayıcıyı halka açık hale gelmeyecek şekilde None erişim politikasını belirler.
- Akıştan dosyayı yüklemek için bir BlobClient nesnesi kullanır.
Tim, dosya akışını güvenli bir şekilde ele alırken bellek sızıntılarını önlemek için using ifadesi ve await çağrısı kullanır.
Dosya İndirme Mantığı
DownloadFileAsync içinde, Tim:
Bir dizin ismi veya tam blob URI'si kabul eder.
URI ve güvenli kimlik bilgilerini kullanarak yeni bir BlobClient oluşturur.
Dosyayı DownloadStreamingAsync kullanarak indirir.
- Dosyaları tarayıcıdan indirilebilir hale getirmek için bir FileContentResult'a akışı sarmalar.
Bu dosyaların güvenli kalmasını ve yalnızca uygulama üzerinden—URL tahminiyle doğrudan ulaşılmamasını sağlar.
Bağımlılık Enjeksiyonu İle Blob Depolama Kaydetme
Tim, sınıfı için bir ara birim (IBlobStorage) tanımlar ve .NET DI (Bağımlılık Enjeksiyonu) konteynerinde Singleton olarak kaydeder. Sınıfın durumsuz olması ve sadece konfigürasyon değerlerini kullanmasından dolayı, Singleton idealdir.
MVC Uygulamasıyla Entegrasyon
Home Controller, IBlobStorage kullanacak şekilde değiştirildi. İçerir:
UploadFileAsync'i çağıran ve girişi doğrulayan bir UploadFile POST yöntemi.
- URL'yi kontrol eden ve ardından DownloadFileAsync çağıran bir GetFile POST yöntemi.
blob dosyalarını güvenli bir şekilde yönetmek
Dosya İşlemleri için Razor View UI
Index.cshtml dosyasında, Tim şunları ayarlıyor:
Dosyalar yüklemek için input type="file" ve Bootstrap stilini kullanarak bir form.
- Dosyayı URI kullanarak indirmenin ikinci bir yöntemi.
Kayıp dosyalar veya geçersiz URI'lar gibi uç durumlar için hata mesajı işleme.
oluşturulan blob URI'sinin
Tim ayrıca bir List
Dosya Güvenliğini Test Etme ve Doğrulama
Tim bir metin dosyası yükler ve URI'ye tarayıcıda doğrudan erişmeye çalışır—Öngörüldüğü gibi, None erişim politikası nedeniyle başarısız olur.
Azure portalında geçici olarak erişim seviyesini değiştirdikten sonra, dosya doğrudan bağlantı üzerinden indirilebilir hale gelir. Ancak hemen bunu Özel olarak geri alır ve Azure'un güvenlik üzerinde ince ayarlı kontrol sağladığını vurgular.
Tim'in Son Tavsiyeleri
Tim, geliştiricilere Microsoft Azure'un, düşük yatırımlarla bile çok fazla değer sunduğunu hatırlatarak sözlerini bitiriyor. Gibi araçlarla:
NuGet paketleri
Azure SDK
- Visual Studio
Azure Portal
- Güvenli bağlantı dizeleri ve anahtarlar
C#, kullanarak hızlıca üretim için hazır bir depolama çözümü oluşturabilirsiniz. Geniş ölçekli bir sistem üzerinde çalışıyor olun ya da küçük bir test projesi üzerinde, Azure Blob Storage ölçeklenebilir ve maliyet etkin bir seçenektir.
"Bulutta kullandığınız kadar ödersiniz—bu yüzden sadece ihtiyacınız olanı isteyin," diye vurguluyor Tim.
Özet
blob konteynerlerini yapılandırmadan
Bu rehber ve Tim'in videosu ile Azure Blob Storage kullanmaya güvenle başlayabilir, kontrolü elinizde tutarken maliyetleri en aza indirerek bulut geliştirmede en iyi uygulamalara uymaya devam edebilirsiniz.
Azure depolama (C#) hakkında daha fazla aydınlatıcı içerik için, onun YouTube Kanalına ve tam videosuna mutlaka göz atın.

