Подключение к хранилищу BLOB-объектов Azure из Power Apps
Power Apps может подключаться к хранилищу BLOB-объектов Azure. Вы можете отправлять файлы, такие как Word, Excel, или мультимедийные изображения, аудио или видео, используя Соединитель хранилища BLOB-объектов Azure для Power Apps.
При разработке приложения на основе холста, которое подключается к хранилищу BLOB-объектов Azure, приложение использует имя и ключ учетной записи хранилища BLOB-объектов для подключения. После того, как вы предоставите доступ к приложению другим пользователям, пользователи смогут использовать подключение, настроенное внутри приложения, для отправки файлов в хранилище BLOB-объектов Azure без необходимости делиться именем и ключами хранилища BLOB-объектов с пользователями приложения.
В этой статье вы узнаете, как создать образец приложения на основе холста, которое подключается к хранилищу BLOB-объектов Azure, и добавить в приложение элементы управления, которые позволяют отправлять файлы различных типов в подключенное хранилище BLOB-объектов.
Примечание
Чтобы узнать больше о других типах облачных хранилищ с Power Apps (например, OneDrive, OneDrive для бизнеса, Google Диск, Dropbox или Box) перейдите в Подключиться к облачному хранилищу из Power Apps.
Предварительные условия
Прежде чем начать, создайте и настройте Учетную запись BlockBlobStorage. Вы также можете использовать устаревшую учетную запись BlobStorage, хотя это не рекомендуется. Больше информации: Типы учетных записей хранения в хранилище BLOB-объектов Azure
Создание подключения к хранилищу BLOB-объектов Azure
Для Power Apps требуется создание подключения к хранилищу BLOB-объектов Azure, чтобы приложение могло подключиться к хранилищу.
Создание подключения к хранилищу BLOB-объектов Azure:
Войдите в Power Apps.
На левой панели разверните Данные.
Выберите Подключения.
Выберите Новое подключение.
Выберите Хранилище BLOB-объектов Azure.
Скопируйте и вставьте имя учетной записи и ключ доступа.
Для получения дополнительной информации о том, как скопировать имя учетной записи и ключ доступа, см. Просмотр ключей доступа к учетной записи в Azure.
Выберите Создать.
Теперь ваше подключение к хранилищу BLOB-объектов Azure настроено и готово к использованию с приложениями на основе холста.
Создание приложения на основе холста с подключением к хранилищу BLOB-объектов Azure
Теперь, когда у вас есть подключение к хранилищу BLOB-объектов Azure, давайте создадим приложение на основе холста, которое подключается к этому хранилищу.
Примечание
В этом разделе вы создадите пример приложения с примерами элементов управления, функциональностью и дизайном макета. В зависимости от требований вашего бизнеса вы можете создать приложение с другой структурой или настроить по-другому.
Создайте пустое приложение на основе холста с именем "Пример приложения для хранилища BLOB-объектов Azure" и макетом Телефон.
В Power Apps Studio на левой панели выберите
.
Выберите Добавить данные.
В списке соединителей выберите Хранилище BLOB-объектов Azure.
Просмотр контейнеров и файлов
Теперь, когда у вас есть приложение, подключенное к хранилищу BLOB-объектов Azure, давайте добавим коллекции для просмотра контейнеров и файлов в контейнерах из подключенного хранилища.
Выберите Вставить -> Коллекция -> Пустая вертикальная.
В правой части экрана на панели свойств выберите раскрывающийся список и выберите Заголовок.
Выберите сначала
внутри коллекции и удалите его.
В правой части экрана на панели свойств выберите раскрывающийся список для источника данных и выберите Хранилище BLOB-объектов Azure.
Задайте для свойства Элементы коллекции:
AzureBlobStorage.ListRootFolderV2().value
Эта операция выводит список BLOB-объектов в корневой папке хранилища BLOB-объектов Azure. Больше информации: Список BLOB-объектов в корневой папке
Выберите Вставить -> Коллекция -> Пустая, вертикальная, чтобы добавить еще одну пустую вертикальную коллекцию.
Переместите коллекцию под добавленной ранее коллекцией, в которой отображается список контейнеров.
В правой части экрана на панели свойств выберите раскрывающийся список и выберите Заголовок, подзаголовок и текст.
Выберите сначала
внутри коллекции и удалите его.
В правой части экрана на панели свойств выберите раскрывающийся список для источника данных и выберите Хранилище BLOB-объектов Azure.
Задайте для свойства Элементы коллекции:
AzureBlobStorage.ListFolderV2(Gallery1.Selected.Id).value
Эта операция выводит список BLOB-объектов в контейнере. Больше информации: Список BLOB-объектов
Примечание
Gallery1 в этой формуле — это ссылка на добавленную ранее коллекцию, в которой перечислены все контейнеры в учетной записи хранения. Обновите формулу, указав имя коллекции, если оно отличается.
В правой части экрана на панели свойств выберите Изменить для Поля.
Измените выбранные поля для заголовка коллекции как DisplayName, подзаголовок как LastModified, а текст как Путь.
В коллекции теперь отображается список файлов из контейнера, выбранного с помощью коллекции вверху.
Выберите Вставить -> Текстовая метка.
Поместите метку в верхнюю часть экрана приложения.
Установите свойство Текст метки как «Выбрать контейнер».
Используйте панель свойств в правой части экрана и выберите цвет текста метки, размер и цвет фона текста метки по вашему выбору.
Выберите Вставить -> Текстовая метка.
Поместите метку над коллекций со списком файлов.
Установите свойство Текст метки как «Список файлов».
Отправка файлов в хранилище BLOB-объектов Azure
В современном дизайне приложения вы можете выбрать контейнер, а затем перечислить файлы из контейнера.
Давайте настроим приложение с элементами управления и логикой, чтобы разрешить отправку файлов в подключенное хранилище BLOB-объектов Azure.
Выберите Вставить -> Мультимедиа -> Добавить изображение, чтобы добавить возможность выбора файлов для отправки.
Измените размер элемента управления Добавление изображения и поместите его в нижнем левом углу экрана приложения.
Установите свойство Текст элемента управления как «Выбрать файл для отправки».
Выберите Вставить -> Кнопка.
Поместите кнопку в правом нижнем углу экрана приложения.
Задайте свойство Текст кнопки как "Отправить".
Выберите Вставить -> Ввод текста.
Поместите элемент управления вводом текста над кнопкой Отправить.
Задайте свойство По умолчанию кнопки как «Ввести имя файла».
Задайте свойство OnSelect кнопки как:
AzureBlobStorage.CreateFile(Gallery1.Selected.Name,TextInput1.Text, UploadedImage1.Image)
Эта операция отправляет BLOB-объект в хранилище BLOB-объектов Azure. Дополнительные сведения: Создание BLOB-объекта
Примечание
Gallery1 в этой формуле — это ссылка на добавленную ранее коллекцию, в которой перечислены все контейнеры в учетной записи хранения. Файл будет отправлен в выбранный контейнер в коллекции 1. TextInput1 и uploadImage1 ссылаются на элементы управления вводом текста и отправки изображения. Обновите формулу названиями элементов управления, если они другие.
Теперь в примере приложения элементы управления выглядят следующим образом.
Совет
Убедитесь, что вы выбрали Все файлы при использовании параметра отправки, чтобы убедиться, что все типы файлов отображаются в диалоговом окне проводника файлов.
Загрузка файлов из хранилища BLOB-объектов Azure
На данный момент вы добавили возможность просмотра контейнеров, файлов из выбранного контейнера и возможность отправки файлов в хранилище. Теперь давайте разберемся, как работать с возможностью загрузки из подключенного хранилища.
Выберите первую строку в коллекции со списком файлов из контейнера.
Выберите Вставить -> Значки -> Загрузить. Это добавляет значок загрузки для всех строк в коллекции.
Переместите первый значок загрузки вправо внутри коллекции на экране приложения. Это также перемещает остальные значки для следующих строк в галерее.
Задайте свойство OnSelect значки загрузки как:
Launch(AzureBlobStorage.CreateShareLinkByPath(ThisItem.Path).WebUrl)
Эта операция создает ссылку SAS для BLOB-объекта с использованием пути. Дополнительные сведения: Создание URI SAS по пути
Важно!
У URI SAS, созданного с использованием CreateShareLinkByPath, срок действия по умолчанию составляет 24 часа. Если у вас есть бизнес-требование, чтобы срок действия URI истекал в более короткий или другой период времени, рассмотрите возможность обновления этой формулы. Например, в приведенном ниже примере URI истекает через 1 час с использованием функций Now() и DateAdd().
Launch(AzureBlobStorage.CreateShareLinkByPath(ThisItem.Path,{ExpiryTime:DateAdd( Now(),1)}).WebUrl)
Совет
Дополнительные сведения о настройке хранилища BLOB-объектов Azure для общедоступного анонимного доступа и различных уровней общедоступного доступа см. в разделе Настройка анонимного публичного доступа с правами на чтение для контейнеров и BLOB-объектов.
Теперь в приложении есть возможность загружать файлы.
Тестирование, сохранение, публикация приложения, а также предоставление общего доступа к нему
Запустите приложение, чтобы протестировать его, и убедитесь, что оно работает должным образом. После тестирования убедитесь, что вы сохранили и опубликовали приложение перед закрытием Power Apps Studio. А затем вы можете поделиться приложением с другими внутри вашей организации, или же гостями за пределами вашей организации.
Необязательные настройки
В этом разделе вы узнаете о необязательных и дополнительных настройках, которые вы можете рассмотреть для своего приложения.
Тип мультимедиа
Можно использовать поля Тип мультимедиа или Путь для коллекции, чтобы дополнительно отображать содержимое изображения в соответствующих элементах управления. Например, Средство просмотра PDF-файлов для файлов PDF, Изображение для изображений или Аудио/видео для аудио/видео файлов.
Например, чтобы отфильтровать файлы с типом расширения файла PDF, используйте следующую формулу-образец.
If(".pdf" in Gallery2.Selected.Path, AzureBlobStorage.GetFileContent(Gallery2.Selected.Id))
Точно так же вы можете использовать различные типы расширений файлов или типы мультимедиа для дополнительной настройки добавленных элементов управления.
Обновление коллекций, подключенных к хранилищу BLOB-объектов Azure
Подключение к хранилищу BLOB-объектов Azure не обновляет данные в коллекциях автоматически при обновлении данных. Если у вас более одного контейнера, вы можете выбрать другой контейнер, а затем снова выбрать ранее выбранный контейнер, чтобы обновить подключенную коллекцию и отобразить изменения.
Другой метод, который можно рассмотреть, — использовать коллекцию для первой галереи, а затем использовать функцию ClearCollect, чтобы обновить коллекцию.
Например, следующие формулы позволяют обновлять коллекцию для списка верхних контейнеров в первой коллекции и обновлять вторую коллекцию при нажатии кнопки отправки или при появлении экрана (свойство экрана OnVisible).
Задайте свойство Элементы первой коллекции для списка контейнеров как "TopLevelList".
Добавьте к кнопке отправки свойство OnSelect :
ClearCollect(TopLevelList, AzureBlobStorage.ListRootFolderV2().value)
Добавьте на экран свойство OnVisible:
ClearCollect(TopLevelList, AzureBlobStorage.ListRootFolderV2().value)
Ограничения
Вы не можете использовать Microsoft Excel как источник данных, когда файл хранится в хранилище BLOB-объектов Azure. Чтобы использовать Excel в качестве источника данных, используйте другие соединители облачного хранилища (например, OneDrive, OneDrive для бизнеса, Google Диск, Dropbox или Box). Больше информации: Подключиться к облачному хранилищу из Power Apps