Altbilgi içeriğine atla
Iron Academy Logo
C# Veritabanı Entegrasyonu

C#'de Azure Depolama'ya Giriş

Tim Corey
1h 05m 37s

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.

Intro Azure Storage Csharp 1 related to Azure Depolama Hesabının Oluşturulması

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ı

Intro Azure Storage Csharp 2 related to ASP.NET Core Projesine Başlama

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.

Intro Azure Storage Csharp 3 related to Gerekli NuGet Paketlerini Kurma

"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 IOptionskullanarak enjekte eder ve özel bir örnekte saklar.

İ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 Listkullanarak hataları ele alır ve bunları kullanıcı arayüzünde net bir şekilde sunarak, kullanıcıları dosya seçimi eksikliği gibi sorunlar hakkında bilgilendirir.

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.

Hero Worlddot related to C#'de Azure Depolama'ya Giriş
Hero Affiliate related to C#'de Azure Depolama'ya Giriş

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara