C#'ta Azure Depolamaya Giriş
Azure Depolama, Microsoft Azure tarafından sunulan önemli bir hizmettir ve .NET teknolojileriyle birleştirildiğinde, bulutta dosya depolamak ve almak için güçlü bir araç haline gelir. Detaylı öğretici "Intro to Azure Storage in C#" adlı videosunda Tim Corey, izleyicilere bir Azure Depolama Hesabı yapılandırmanın, Azure Blob Depolamayı kurmanın ve bunu bir C# ASP.NET Core MVC projesine entegre etmenin adımlarını gösterir.
Bu makalede, Tim'in videosunu yakından takip ederek sürecin her aşamasını keşfedeceğiz ve gerçek dünya Azure geliştirmesinde kullanılan anahtar kavramları ve terimleri tartışacağız.
Azure Depolama Fiyatlandırması ve Planlama
Tim, Azure Depolamayı bir C# uygulamasında kullanmanın mali maliyet etkinliğini açıklayarak başlar. Bir blob konteynerinde metin dosyaları, resimler veya ikili veriler depoluyor olun, maliyet minimum kalır. Seçilen özelliklere dayalı olarak maliyetleri tahmin etmek için Azure Fiyatlandırma Hesaplayıcısını tanıtır, performans katmanları, yedeklilik ayarları ve veri işlemleri gibi.
Tim, Azure portalında Genel Amaç v2 altında Blok Blob Depolamayı seçer ve sık erişilen dosyalar için sıcak erişim katmanını yapılandırır. Depolama hesabının hâlâ güvenliği korurken maliyetleri minimize etmek için yerel yedekli depolama (LRS) kullandığından emin olur.
"1 GB veri depolayan ve birkaç bin işlem gerçekleştiren bir demo uygulaması için maliyet ayda 13 sente iniyor," diye açıklıyor Tim.
Azure Depolama Hesabını Oluşturma
Azure portalunda, Tim yeni bir kaynak grubu ve ilgili bir Azure Depolama Hesabı oluşturmayı gösteriyor. Adlandırma kuralları sıkı—depolama hesabı adları benzersiz, küçük harfli olmalı ve tire içeremez.
Kurulumu yaparken, maliyeti düşürmek için Coğrafi-Yedekli depolamayı devre dışı bırakıyor, bu, prototipler veya yerel ortamlar üzerinde çalışan geliştiriciler için kritik bir ipucu. Ayrıca anonim erişimi konteyner seviyesinde etkinleştiriyor, ancak sadece gösteri amaçlı olarak—gerçek üretim ortamlarının güvenli erişime ihtiyaç duyduğuna dair uyarıda bulunuyor.

Tim ayrıca erişim anahtarlarını, bağlantı dizesini ve depolama hesabı adını kapsıyor—bunların hepsi, C# projenizin Azure kaynaklarına bağlanması için gereklidir.
Azure Blob Depolamayı Anlamak
Tim, bir blob konteynerinin Azure depolama hesabınızda verileri organize etmek için nasıl kullanıldığını vurguluyor. Portal üzerinden manuel olarak yeni bir konteyner oluşturmaktan kaçınıyor ve bunun yerine Azure SDK for .NET kullanarak kod ile oluşturmayı planlıyor.
Güvenli erişim anahtarlarının ve bağlantı dizisinin—hesabın güvenlik ayarları altında görülebilir olduğunu—uygulamada depolama müşteri kütüphanesine kimlik doğrulamada kullanılacağını açıklıyor.
ASP.NET Core Projesine Başlamak
Tim Visual Studio'yu kullanarak bir .NET 9 MVC web uygulaması oluşturuyor. Razor Pages veya Blazor Server gibi herhangi bir UI tipi kullanılabilse de, gösterim için MVC'yi seçiyor.
19:35'te, secrets.json dosyasında, hassas kimlik bilgilerini güvenli bir şekilde saklıyor:
bağlantı dizisi
depolama hesabı anahtarı
konteyner adı
- depolama hesabı adı

Tim, appsettings.json dosyasının sırlar içermemesi gerektiğini belirtir, çünkü bu dosya kaynak kodu havuzlarına yüklenmektedir. Bunun yerine, sırların geliştirme sırasında özellikle Kullanıcı Sırları kullanılarak yerel olarak saklanması gerektiğini belirtir.
Gerekli NuGet Paketlerini Yükleme
Azure Blob Depolama ile etkileşim kurmak için Tim, Azure.Storage.Blobs NuGet paketini yüklüyor. Microsoft'un özellikleri Azure SDK kullanarak modüler hale getirdiğini ve bu sayede daha küçük, daha sürdürülebilir uygulamalar olanak tanıdığını takdir ediyor.

"Her şeyi çerçeveye yüklemek yerine, şimdi ihtiyaçınız olanı—Azure Blob istemcisi kütüphanesi gibi—NuGet ile alıyorsunuz," diyor Tim.
Azure Depolama için Seçenek Desenini Yapılandırma
Sonra Tim, BlobStorageOptions adlı bir POCO sınıfı oluşturarak konfigürasyonundaki anahtarlarla eşleşmesini sağlıyor. Merkezi ve test edilebilir konfigürasyon sağlamak için konfigürasyonu güçlü yazılmış nesnelere bağlamak için seçenek desenini kullanıyor.
Bu yapılandırma, .NET uygulamasının Azure konfigürasyonunu ortamlarda tutarlı bir şekilde kullanmasını kolaylaştırır.
Blob Depolama Hizmeti Mantığını Uygulamak
Tim, DataAccess adında yeni bir klasör ekleyip BlobStorage.cs adlı bir sınıf uygular. İçeride, konfigürasyonu IOptions
İki ana asenkron metot oluşturur:
Dosya Yükleme Mantığı
UploadFileAsync metodu:
MVC ön yüzünden bir IFormFile kabul eder.
Bağlantı dizisi ve konteyner adı kullanarak Azure Depolama SDK'sından bir BlobContainerClient oluşturur.
Mevcut bir konteynerin olup olmadığını kontrol eder ya da yoksa yeni bir konteyner oluşturur.
Konteynerin herkese açık olmamasını sağlamak için erişim politikasını None olarak ayarlar.
- Dosyayı bir akıştan yüklemek için bir BlobClient nesnesi kullanır.
Tim, dosya akışını güvenli bir şekilde yönetmek ve bellek sızıntılarını önlemek için using ifadesi ve await çağrısı kullanır.
Dosya İndirme Mantığı
DownloadFileAsync'te, Tim:
Bir string dosya adı veya tam blob URI kabul eder.
URI ve güvenli kimlik bilgilerini kullanarak yeni bir BlobClient oluşturur.
DownloadStreamingAsync kullanarak dosyayı indirir.
- Akışı bir FileContentResult içinde sararak dosyaların tarayıcıdan indirilebilmesini sağlar.
Bu, dosyaların güvenli kalmasını ve URL tahmini yoluyla doğrudan erişilememesini sağlar.
Bağımlılık Enjeksiyonu ile Blob Depolamayı Kaydetme
Tim, sınıfı için bir arayüz (IBlobStorage) tanımlar ve .NET DI konteynerinde Singleton olarak kaydeder. Sınıf durumsuz olduğundan ve sadece konfigürasyon değerleri kullandığından, Singleton en iyi seçenektir.
MVC Uygulaması ile Entegrasyon
Ana Kontrolör, IBlobStorage kullanacak şekilde değiştirilir. İçerir:
Girdiyi doğrulayan ve UploadFileAsync'i çağıran bir UploadFile POST metodu.
- URL'yi kontrol edip ardından DownloadFileAsync'i çağıran bir GetFile POST metodu.
Her bir yöntem, ister yükleme ister indirme olsun, blob dosyalarını güvenli bir şekilde yönetmek için depolama istemcisi ile etkileşimde bulunur.
Dosya İşlemleri için Razor Görünüm UI
Index.cshtml dosyasında, Tim şu ayarları yapar:
input type="file" ve Bootstrap stilini kullanarak dosya yüklemek için bir form.
URI'yi kullanarak bir dosya indirmek için ikinci bir form.
Eksik dosyalar veya geçersiz URI'ler gibi köşe durumları için hata mesajı işleme.
- Başarılı bir yükleme sonrası oluşturulan blob URI'sinin (https) gösterildiği bir gösterim bölümü.
Tim ayrıca, bir List
Dosya Güvenliğini Test Etme ve Doğrulama
Tim bir metin dosyası yükleyip URI'yi doğrudan tarayıcıda açmayı dener—beklendiği gibi None erişim politikası nedeniyle başarısız olur.
Azure portalında erişim seviyesini geçici olarak değiştirdikten sonra dosya doğrudan bağlantı ile indirilebilir. Fakat hemen tekrar Özele çevirir, Azure'un güvenlik üzerinde ince kontrol sağladığını vurgular.
Tim'in Son Tavsiyeleri
Tim, geliştiricilere Microsoft Azure'un minimum yatırımla bile çok değer sunduğunu hatırlatarak bitirir. Gibi araçlar ile:
NuGet paketleri
Azure SDK
Visual Studio
Azure Portal
- Güvenli bağlantı dizileri ve anahtarlar
C# kullanarak hızla üretime hazır bir depolama çözümü oluşturabilirsiniz. İster büyük ölçekli bir sistem üzerinde çalışıyor olun ister küçük bir test projesi, Azure Blob Depolama ölçeklenebilir ve maliyet etkili bir seçenektir.
"Bulutta kullandığınız kadar ödersiniz—o yüzden sadece ihtiyaçınız olanı isteyin," diye vurgular Tim.
Özet
Bir depolama hesabı oluşturma ve blob konteynerlerini yapılandırmadan, MVC uygulamasında yükleme ve indirmeleri güvenli bir şekilde yönetmeye kadar, Tim Corey, Azure Depolama'nın .NET ile kullanımına dair tüm yaşam döngüsünü kapsayan ayrıntılı talimatlar sunar.
Bu rehber ve Tim'in videosu ile, Azure Blob Depolamayı güvenle kullanmaya başlayabilirsiniz—kontrolü elinizde tutarak, maliyetleri minimize ederek ve bulut geliştirmede en iyi uygulamalara uyarak.
Daha fazla netlik için onun tam videosuna ve YouTube Kanalı'na göz atın, Azure depolama (C#) hakkında daha içgörü dolu içerik için.

