Приступим к работе с объектами BLOB в Azure и платформой .NET.
03.04.2025
В этой статье показано, как подключиться к Хранилище BLOB-объектов Azure с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для .NET. После подключения используйте руководства разработчика, чтобы узнать, как ваш код может работать с контейнерами, BLOB-объектами и функциями в службе Blob Storage.
Новейший SDK для .NET для вашей операционной системы. Обязательно получите пакет SDK, а не среду выполнения.
Настройка проекта
В этом разделе рассматривается подготовка проекта для работы с клиентской библиотекой хранилища BLOB-объектов Azure для .NET.
В каталоге проекта установите пакеты для клиентских библиотек Хранилище BLOB-объектов Azure и удостоверений Azure с помощью dotnet add package команды. Пакет Azure.Identity необходим для подключения к службам Azure без пароля.
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Сведения о библиотеке клиента BLOB.
Azure.Storage.Blobs: содержит основные классы (клиентские объекты), которые можно использовать для работы со службой, контейнерами и BLOB-объектами.
Azure.Storage.Blobs.Specialized: содержит классы, которые можно использовать для выполнения операций, относящихся к типу BLOB-объектов, например блочных BLOB-объектов.
Авторизуйте доступ и подключитесь к хранилищу BLOB-данных
Чтобы подключить приложение к хранилищу BLOB-объектов, создайте экземпляр класса BlobServiceClient . Этот объект является отправной точкой для взаимодействия с ресурсами данных на уровне учетной записи хранения. Вы можете использовать его для управления учетной записью хранения и ее контейнерами. Вы также можете использовать клиент службы для создания клиентов контейнеров или блоб-клиентов в зависимости от ресурса, с которым требуется работать.
Вы можете авторизовать объект BlobServiceClient с помощью маркера авторизации Microsoft Entra, ключа доступа к учетной записи или подписанной строки доступа (SAS). Для оптимальной безопасности корпорация Майкрософт рекомендует использовать Microsoft Entra ID с управляемыми удостоверениями для авторизации запросов к BLOB-данным. Для получения дополнительной информации см. Авторизация доступа к BLOB-объектам с использованием Microsoft Entra ID.
Для авторизации с помощью идентификатора Microsoft Entra необходимо использовать учетную запись безопасности. Тип необходимого идентификатора безопасности зависит от того, где запускается ваше приложение. Используйте эту таблицу в качестве справочника.
Авторизация доступа с помощью DefaultAzureCredential
Простой и безопасный способ авторизации доступа и подключения к Хранилищу Blob — получить токен OAuth, создав экземпляр DefaultAzureCredential. Затем можно использовать эти учетные данные для создания объекта BlobServiceClient .
В следующем примере создается объект, авторизованный BlobServiceClient с помощью DefaultAzureCredential:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Если вы знаете, какой тип учетных данных вы будете использовать для проверки подлинности пользователей, вы можете получить маркер OAuth с помощью других классов в клиентской библиотеке удостоверений Azure для .NET. Эти классы являются производными от класса TokenCredential .
В сценариях, когда используются доверенные подписи доступа (SAS), корпорация Майкрософт рекомендует использовать SAS пользователя с делегированием. SAS делегирования пользователей защищены учетными данными Microsoft Entra вместо ключа учетной записи.
Создайте объект StorageSharedKeyCredential с помощью имени учетной записи хранения и ключа учетной записи. Затем используйте этот объект для инициализации класса BlobServiceClient.
public static void GetBlobServiceClient(ref BlobServiceClient blobServiceClient,
string accountName, string accountKey)
{
Azure.Storage.StorageSharedKeyCredential sharedKeyCredential =
new StorageSharedKeyCredential(accountName, accountKey);
string blobUri = "https://" + accountName + ".blob.core.windows.net";
blobServiceClient = new BlobServiceClient
(new Uri(blobUri), sharedKeyCredential);
}
BlobServiceClient можно также создать, используя строку подключения.
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
Ключ доступа к учетной записи следует использовать с осторожностью. Если ключ доступа к учетной записи потерян или случайно помещен в небезопасное расположение, ваша служба может стать уязвимой. Любой пользователь, имеющий ключ доступа, может авторизовать запросы к учетной записи хранения и эффективно иметь доступ ко всем данным.
DefaultAzureCredential предоставляет расширенные функции безопасности и преимущества и рекомендуется использовать для управления авторизацией в службах Azure.
При создании приложений для работы с ресурсами данных в Хранилище BLOB-объектов Azure код в основном взаимодействует с тремя типами ресурсов: учетными записями хранения, контейнерами и большими двоичными объектами. Дополнительные сведения об этих типах ресурсов, о том, как они связаны друг с другом и как приложения взаимодействуют с ресурсами, см. в статье "Общие сведения о взаимодействии приложений с ресурсами хранилища BLOB-объектов".
В следующих руководствах показано, как получить доступ к данным и выполнить определенные действия с помощью клиентской библиотеки служба хранилища Azure для .NET:
Создавайте комплексные решения в Microsoft Azure для создания функций Azure, реализации веб-приложений и управления ими, разработки решений с использованием хранилища Azure и т. д.