hızlı başlangıç: .net için Azure Blob Depolama istemci kitaplığı v12

.net için v12 istemci kitaplığı Depolama Azure Blob 'u kullanmaya başlayın. Azure Blob Depolama, Microsoft 'un bulut için nesne depolama çözümüdür. Paketi yüklemek ve temel görevler için örnek kodu denemek için adımları izleyin. Blob depolama, çok miktarda yapılandırılmamış veriyi depolamak için iyileştirilmiştir.

bu hızlı başlangıçtaki örneklerde, .net için istemci kitaplığı v12 Depolama Azure Blob 'u nasıl kullanabileceğiniz gösterilmektedir:

Ek kaynaklar:

Önkoşullar

Ayarlanıyor

bu bölümde, bir projeyi .net için istemci kitaplığı v12 Depolama Azure Blob ile çalışacak şekilde hazırlama işlemi adım adım açıklanmaktadır.

Proje oluşturma

BlobQuickstartV12 adlı bir .NET Core uygulaması oluşturun.

  1. Konsol penceresinde (cmd, PowerShell veya Bash gibi), dotnet new BlobQuickstartV12 adlı yeni bir konsol uygulaması oluşturmak için komutunu kullanın. Bu komut, tek bir kaynak dosyası olan basit bir "Merhaba Dünya" C# projesi oluşturur: program. cs.

    dotnet new console -n BlobQuickstartV12
    
  2. Yeni oluşturulan BlobQuickstartV12 dizinine geçiş yapın.

    cd BlobQuickstartV12
    
  3. BlobQuickstartV12 dizininde, veri adlı başka bir dizin oluşturun. Blob veri dosyalarının oluşturulup depolanacağı yerdir.

    mkdir data
    

Paketi yükler

hala uygulama dizininde, komutunu kullanarak .net için Azure Blob Depolama istemci kitaplığı ' nı yükleyebilirsiniz dotnet add package .

dotnet add package Azure.Storage.Blobs

Uygulama çerçevesini ayarlama

Proje dizininden:

  1. Düzenleyicinizde program. cs dosyasını açın.

  2. İfadesini kaldırın Console.WriteLine("Hello World!"); .

  3. usingYönergeler ekleyin.

  4. MainZaman uyumsuz olarak desteklemek için yöntem bildirimini güncelleştirin.

    Kod şu şekildedir:

    using Azure.Storage.Blobs;
    using Azure.Storage.Blobs.Models;
    using System;
    using System.IO;
    using System.Threading.Tasks;
    
    namespace BlobQuickstartV12
    {
        class Program
        {
            static async Task Main()
            {
            }
        }
    }
    

Azure portalından kimlik bilgilerinizi kopyalama

örnek uygulama Azure Depolama istek yaptığında yetkilendirilmiş olması gerekir. Bir isteği yetkilendirmek için, depolama hesabı kimlik bilgilerinizi uygulamaya bağlantı dizesi olarak ekleyin. Depolama hesabı kimlik bilgilerinizi görüntülemek için aşağıdaki adımları izleyin:

  1. Azure Portal’ında oturum açın.

  2. Depolama hesabınızı bulun.

  3. Depolama hesabı menü bölmesinde, güvenlik + ağ altında, erişim anahtarları' nı seçin. Burada, her anahtar için hesap erişim anahtarlarını ve tüm bağlantı dizesini görüntüleyebilirsiniz.

    Erişim anahtarı ayarlarının Azure portal nerede olduğunu gösteren ekran görüntüsü

  4. Erişim tuşları bölmesinde, anahtarları göster' i seçin.

  5. KEY1 bölümünde bağlantı dizesi değerini bulun. Bağlantı dizesini kopyalamak için Panoya Kopyala simgesini seçin. Bir sonraki bölümde bağlantı dizesi değerini bir ortam değişkenine eklersiniz.

    Azure portalından bağlantı dizesinin kopyalanmasını gösteren ekran görüntüsü

Depolama bağlantı dizelerinizi yapılandırma

Bağlantı dizesini kopyaladıktan sonra, uygulamayı çalıştıran yerel makinede yeni bir ortam değişkenine yazın. Ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminizin yönergelerini izleyin. <yourconnectionstring>Gerçek bağlantı dizeniz ile değiştirin.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

ortam değişkenini Windows ekledikten sonra, komut penceresinin yeni bir örneğini başlatmanız gerekir.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Programları yeniden Başlat

Ortam değişkenini ekledikten sonra, ortam değişkenini okumak için gereken tüm çalışan programları yeniden başlatın. Örneğin, devam etmeden önce geliştirme ortamınızı veya düzenleyiciyi yeniden başlatın.

Nesne modeli

Azure Blob Depolama, büyük miktarlarda yapılandırılmamış verileri depolamak için iyileştirilmiştir. Yapılandırılmamış veriler, metin veya ikili veriler gibi belirli bir veri modeline veya tanıma bağlı olmayan verilerdir. BLOB depolama üç tür kaynak sunar:

  • Depolama hesabı
  • Depolama hesabındaki bir kapsayıcı
  • Kapsayıcıda bir blob

Aşağıdaki diyagramda bu kaynaklar arasındaki ilişki gösterilmektedir.

BLOB depolama mimarisi diyagramı

Şu kaynaklarla etkileşim kurmak için aşağıdaki .NET sınıflarını kullanın:

  • BlobServiceClient: BlobServiceClient sınıfı, Azure Depolama kaynaklarını ve blob kapsayıcılarını değiştirmenize olanak sağlar.
  • blobcontainerclient: BlobContainerClient sınıfı, Azure Depolama kapsayıcıları ve bloblarını değiştirmenize olanak sağlar.
  • blobclient: BlobClient sınıfı, Azure Depolama bloblarını değiştirmenize olanak sağlar.

Kod örnekleri

aşağıdaki bölümlerde yer aldığı örnek kod parçacıkları, .net için Azure Blob Depolama istemci kitaplığı ile temel veri işlemlerinin nasıl gerçekleştirileceğini gösterir.

Bağlantı dizesini alma

Aşağıdaki kod, depolama bağlantı dizesini yapılandırma bölümünde oluşturulan ortam değişkeninden depolama hesabının bağlantı dizesini alır.

Bu kodu metodun içine ekleyin Main :

Console.WriteLine("Azure Blob Storage v12 - .NET quickstart sample\n");

// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the
// environment variable is created after the application is launched in a
// console or with Visual Studio, the shell or application needs to be closed
// and reloaded to take the environment variable into account.
string connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");

Kapsayıcı oluşturma

Yeni kapsayıcı için bir ad belirleyin. Aşağıdaki kod, benzersiz olduğundan emin olmak için kapsayıcı adına bir GUID değeri ekler.

Önemli

Kapsayıcı adlarının küçük harfle yazılması gerekir. Kapsayıcıları ve blobları adlandırma hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Bunlara Başvurma.

BlobServiceClient sınıfının bir örneğini oluşturun. Ardından, depolama hesabınızda kapsayıcıyı oluşturmak için Createblobcontainsısync yöntemini çağırın.

Bu kodu yönteminin sonuna ekleyin Main :

// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

//Create a unique name for the container
string containerName = "quickstartblobs" + Guid.NewGuid().ToString();

// Create the container and return a container client object
BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);

Bir kapsayıcıya blob yükleme

Aşağıdaki kod parçacığı:

  1. Yerel veri dizininde bir metin dosyası oluşturur.
  2. Kapsayıcı oluşturma bölümünde, kapsayıcıda getblobclient yöntemini çağırarak bir blobclient nesnesine bir başvuru alır.
  3. Uploadasync yöntemini çağırarak yerel metin dosyasını bloba yükler. Bu yöntem, daha önce oluşturulmadıysa bir blob oluşturur, aksi takdirde üzerine yazar.

Bu kodu yönteminin sonuna ekleyin Main :

// Create a local file in the ./data/ directory for uploading and downloading
string localPath = "./data/";
string fileName = "quickstart" + Guid.NewGuid().ToString() + ".txt";
string localFilePath = Path.Combine(localPath, fileName);

// Write text to the file
await File.WriteAllTextAsync(localFilePath, "Hello, World!");

// Get a reference to a blob
BlobClient blobClient = containerClient.GetBlobClient(fileName);

Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri);

// Upload data from the local file
await blobClient.UploadAsync(localFilePath, true);

Bir kapsayıcıdaki Blobları listeleme

Getblobsasync yöntemini çağırarak kapsayıcıdaki Blobları listeleyin. Bu durumda, kapsayıcıya yalnızca bir blob eklenmiş, bu nedenle listeleme işlemi yalnızca bir BLOB döndürüyor.

Bu kodu yönteminin sonuna ekleyin Main :

Console.WriteLine("Listing blobs...");

// List all blobs in the container
await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
    Console.WriteLine("\t" + blobItem.Name);
}

Blobu indirme

Downloadtoasync yöntemini çağırarak önceden oluşturulmuş blobu indirin. Örnek kod, yerel dosya sisteminde her iki dosyayı da görebilmeniz için dosya adına "INDIRILMIŞ" bir sonek ekler.

Bu kodu yönteminin sonuna ekleyin Main :

// Download the blob to a local file
// Append the string "DOWNLOADED" before the .txt extension 
// so you can compare the files in the data directory
string downloadFilePath = localFilePath.Replace(".txt", "DOWNLOADED.txt");

Console.WriteLine("\nDownloading blob to\n\t{0}\n", downloadFilePath);

// Download the blob's contents and save it to a file
await blobClient.DownloadToAsync(downloadFilePath);

Kapsayıcı silme

Aşağıdaki kod, DeleteAsynckullanarak tüm kapsayıcıyı silerek uygulamanın oluşturduğu kaynakları temizler. Ayrıca, uygulama tarafından oluşturulan yerel dosyaları da siler.

Uygulama, Console.ReadLine BLOB, kapsayıcı ve yerel dosyaları silmeden önce çağırarak kullanıcı girişi için duraklatılır. Bu, kaynakların silinmeden önce gerçekten doğru şekilde oluşturulduğunu doğrulamak iyi bir şansınız olur.

Bu kodu yönteminin sonuna ekleyin Main :

// Clean up
Console.Write("Press any key to begin clean up");
Console.ReadLine();

Console.WriteLine("Deleting blob container...");
await containerClient.DeleteAsync();

Console.WriteLine("Deleting the local source and downloaded files...");
File.Delete(localFilePath);
File.Delete(downloadFilePath);

Console.WriteLine("Done");

Kodu çalıştırma

Bu uygulama yerel veri klasörünüzde bir sınama dosyası oluşturur ve BLOB depolamaya yükler. Örnek daha sonra kapsayıcıdaki Blobları listeler ve eski ve yeni dosyaları karşılaştırabilmeniz için dosyayı yeni bir adla indirir.

Uygulama dizininize gidip uygulamayı derleyin ve çalıştırın.

dotnet build
dotnet run

Uygulamanın çıktısı aşağıdaki örneğe benzer:

Azure Blob Storage v12 - .NET quickstart sample

Uploading to Blob storage as blob:
         https://mystorageacct.blob.core.windows.net/quickstartblobs60c70d78-8d93-43ae-954d-8322058cfd64/quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31.txt

Listing blobs...
        quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31.txt

Downloading blob to
        ./data/quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31DOWNLOADED.txt

Press any key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done

Temizleme işlemine başlamadan önce, iki dosya için veri klasörünüzü denetleyin. Dosyaları açarak aynı olduklarını görebilirsiniz.

Dosyaları doğruladıktan sonra, test dosyalarını silmek ve tanıtımı sona almak için ENTER tuşuna basın.

Sonraki adımlar

Bu hızlı başlangıçta .NET kullanarak blobları karşıya yükleme, indirme ve listeleme hakkında bilgi edindiniz.

BLOB depolama örnek uygulamalarını görmek için devam edin: