Azure Blob Storage — это решение Microsoft для хранения объектов в облаке. Хранилище BLOB-объектов оптимизировано для хранения больших объемов неструктурированных данных. Неструктурированные данные — это данные, которые не соответствуют определенной модели данных или определению, например текстовые или двоичные данные.

В этой статье я расскажу вам, как использовать клиентскую библиотеку Azure Blob Storage версии 12 для .NET для загрузки файла в Blob Storage.

Предпосылки

  • Подписка Azure
  • Учетная запись хранения Azure
  • Пакет SDK для .Net Core 6

Настройка

Первый шаг — создать учетную запись хранения в вашей учетной записи Microsoft Azure. В этой статье мы не будем рассматривать шаги, необходимые для создания учетной записи хранилища Azure, вы можете прочитать здесь и здесь, если хотите знать, как это сделать.

Создание проекта веб-API ASP.Net Core

Поскольку наша цель — загрузить реальный файл в хранилище Azure, давайте начнем с создания веб-API ASP.Net Core.

Создайте новый проект Web Api с именем BlobStorage.API, как показано на снимке экрана ниже:

Убедитесь, что вы выбрали последнюю версию .Net framework — 6.0, например:

Установите пакет v12

Мы будем использовать пакет версии v12 и его имя Azure.Storage.Blobs. В консоли диспетчера пакетов введите следующую команду:

Install-Package Azure.Storage.Blobs — версия 12.11.0

Скопируйте ключи доступа с портала Azure.

Войдите на портал Azure и найдите свою учетную запись хранения. В области меню учетной записи хранения в разделе Безопасность и сеть выберите Ключи доступа. Здесь вы можете просмотреть ключи доступа к учетной записи и полную строку подключения для каждого ключа.

Добавление строки подключения в appsettings.json

В файле appsettings.json в корне нашего проекта веб-API давайте добавим раздел с именем azure, а затем добавим имя контейнера хранилища и строку подключения следующим образом:

Реализация загрузки в коде

Начнем с написания всего кода, который будет отвечать за загрузку. В этом уроке я буду писать повторно используемый код.

Чего мы хотим достичь:

  • Загрузить файл в хранилище BLOB-объектов
  • Получите Uri загрузки, тип файла и расширение файла в качестве ответа.

Для этого давайте создадим DTO, который будет представлять детали ответа на загрузку. В папке моделей создайте класс и назовите его AzureUploadResponseModel следующим образом:

Создайте службу загрузки

В нашем проекте создайте папку с именем Services и добавьте интерфейс с именем IAzureStorageService следующим образом:

Затем создайте еще один класс в папке Services с именем AzureStorageService и позвольте ему реализовать IAzureStorageService следующим образом:

Создание вспомогательного класса для получения типа контента

Как видите, мы вызываем метод расширения, чтобы получить тип содержимого такого файла.

Это метод расширения, который мы создадим далее. Создайте папку с именем StorageExtension и создайте класс с именем StorageHelpers. Во вспомогательном методе мы будем использовать FileExtensionContentTypeProvider для получения типа содержимого файла, а также для проверки типа файла.

Использование службы загрузки

Чтобы использовать службу загрузки, первым делом необходимо внедрить BlogClient в наш проект Program.cs — это называется внедрением зависимостей, например:

Давайте создадим контроллер API с именем upload и вставим следующий код.

Если вы попытаетесь отправить файл через почтальона, вы должны получить результат, похожий на этот:

Заключение

В этой статье мы узнали, как выполнить загрузку в хранилище BLOB-объектов Azure, а также получить Uri отправки.

Спасибо за ваше время.

Первоначально опубликовано на http://www.developerslearnit.com.