.NET için Azure Depolama Blobları istemci kitaplığı - sürüm 12.15.1

Sunucu Sürümü: 2021-02-12, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12, 2020-04-08, 2020-02-10, 2019-12-12, 2019-07-07 ve 2019-02-02

Azure Blob depolama, Microsoft’un buluta yönelik nesne depolama çözümüdür. Blob depolama, çok miktarda yapılandırılmamış veriyi 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.

Kaynak kodu | Paket (NuGet) | API başvuru belgeleri | REST API belgeleri | Ürün belgeleri

Başlarken

Paketi yükleme

NuGet ile .NET için Azure Depolama Blobları istemci kitaplığını yükleyin:

dotnet add package Azure.Storage.Blobs

Önkoşullar

Bu paketi kullanmak için bir Azure aboneliğine ve depolama hesabına ihtiyacınız vardır.

Yeni bir Depolama Hesabı oluşturmak için Azure Portalı, Azure PowerShell veya Azure CLI'yı kullanabilirsiniz. Aşağıda Azure CLI'yi kullanan bir örnek verilmişti:

az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS

İstemcinin kimliğini doğrulama

Azure Blobs Depolama hizmetiyle etkileşim kurmak için BlobServiceClient sınıfının bir örneğini oluşturmanız gerekir. Azure Kimlik kitaplığı, Azure SDK istemcilerinin kimliklerini ilgili Azure hizmetleriyle doğrulamak için Azure Active Directory desteği eklemeyi kolaylaştırır.

// Create a BlobServiceClient that will authenticate through Active Directory
Uri accountUri = new Uri("https://MYSTORAGEACCOUNT.blob.core.windows.net/");
BlobServiceClient client = new BlobServiceClient(accountUri, new DefaultAzureCredential());

Belgelerimizde ve örneklerimizde Azure Depolama ile kimlik doğrulaması için Azure Active Directory'yi etkinleştirme hakkında daha fazla bilgi edinin.

Önemli kavramlar

Blob depolama şunlar için tasarlanmıştır:

  • Görüntülerin veya belgelerin doğrudan bir tarayıcıya sunulması.
  • Dağıtılan erişim için dosyaların depolanması.
  • Video ve ses akışları.
  • Günlük dosyalarına yazma.
  • Yedekleme ve geri yükleme, olağanüstü durum kurtarma ve arşivleme için verilerin depolanması.
  • Şirket içi veya Azure’da barındırılan bir hizmetle analiz için verilerin depolanması.

Blob depolama üç tür kaynak sunar:

  • Aracılığıyla kullanılan depolama hesabıBlobServiceClient
  • Aracılığıyla kullanılan depolama hesabındaki bir kapsayıcıBlobContainerClient
  • Aracılığıyla kullanılan kapsayıcıdaki blobBlobClient

Örneklerimizden kimlik doğrulaması seçenekleri (Bağlantı Dizeleri, Paylaşılan Anahtar, Paylaşılan Anahtar İmzaları, Active Directory ve anonim genel erişim dahil) hakkında daha fazla bilgi edinin.

İş parçacığı güvenliği

Tüm istemci örneği yöntemlerinin iş parçacığı açısından güvenli ve birbirinden bağımsız olduğunu garanti ediyoruz (kılavuz). Bu, istemci örneklerini yeniden kullanma önerisinin iş parçacıkları arasında bile her zaman güvenli olmasını sağlar.

Ek kavramlar

İstemci seçenekleri | Yanıta | erişme Uzun süre çalışan işlemler | Hataları | işleme Tanılama | Alaycı | İstemci ömrü

Örnekler

Blobu karşıya yükleme

// Get a connection string to our Azure Storage account.  You can
// obtain your connection string from the Azure Portal (click
// Access Keys under Settings in the Portal Storage account blade)
// or using the Azure CLI with:
//
//     az storage account show-connection-string --name <account_name> --resource-group <resource_group>
//
// And you can provide the connection string to your application
// using an environment variable.

string connectionString = "<connection_string>";
string containerName = "sample-container";
string blobName = "sample-blob";
string filePath = "sample-file";

// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();

// Get a reference to a blob named "sample-file" in a container named "sample-container"
BlobClient blob = container.GetBlobClient(blobName);

// Upload local file
blob.Upload(filePath);

Blob indirme

// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";

// Download the public blob at https://aka.ms/bloburl
new BlobClient(new Uri("https://aka.ms/bloburl")).DownloadTo(downloadPath);

Blobları listeleme

// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";
string filePath = "hello.jpg";

// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();

// Upload a few blobs so we have something to list
container.UploadBlob("first", File.OpenRead(filePath));
container.UploadBlob("second", File.OpenRead(filePath));
container.UploadBlob("third", File.OpenRead(filePath));

// Print out all the blob names
foreach (BlobItem blob in container.GetBlobs())
{
    Console.WriteLine(blob.Name);
}

Zaman Uyumsuz API'ler

Hem zaman uyumlu hem de zaman uyumsuz API'leri tam olarak destekliyoruz.

// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";

// Download the public blob at https://aka.ms/bloburl
await new BlobClient(new Uri("https://aka.ms/bloburl")).DownloadToAsync(downloadPath);

Sorun giderme

Tüm Blob hizmeti işlemleri yararlı ErrorCodes hatalarda bir RequestFailedException oluşturur. Bu hataların çoğu kurtarılabilir.

// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";

// Try to delete a container named "sample-container" and avoid any potential race conditions
// that might arise by checking if the container is already deleted or is in the process
// of being deleted.
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);

try
{
    container.Delete();
}
catch (RequestFailedException ex)
    when (ex.ErrorCode == BlobErrorCode.ContainerBeingDeleted ||
          ex.ErrorCode == BlobErrorCode.ContainerNotFound)
{
    // Ignore any errors if the container being deleted or if it has already been deleted
}

Sonraki adımlar

Blob örneklerimizi kullanmaya başlayın:

  1. Merhaba Dünya: Blobları karşıya yükleme, indirme ve listeleme (veya zaman uyumsuz olarak)
  2. Kimlik Doğrulaması: Bağlantı dizeleri, genel erişim, paylaşılan anahtarlar, paylaşılan erişim imzaları ve Azure Active Directory ile kimlik doğrulaması yapın.

Katkıda bulunma

Bu kitaplığı oluşturma, test etme ve bu kitaplığa katkıda bulunma hakkında ayrıntılı bilgi için bkz. Depolama CONTRIBUTING.md .

Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için cla.microsoft.com adresini ziyaret edin.

Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya ek sorular veya yorumlarla iletişime geçin opencode@microsoft.com .

İzlenimler