Отправка файлов с устройств в облако

IoT Central позволяет отправлять мультимедийные и другие файлы с подключенных устройств в облачное хранилище. Возможность отправки файлов настраивается в приложении IoT Central, а механизм отправки файлов реализуется в коде устройства.

Вы также можете управлять и просматривать файлы, отправленные устройствами в приложении IoT Central.

Сведения о настройке отправки файлов с помощью REST API IoT Central см. в статье "Добавление конфигурации учетной записи хранения для отправки файлов".

Замечание

Автоматическое масштабирование IoT Central не учитывает операции отправки файлов. Если ваше решение сильно зависит от загрузки файлов, может потребоваться вручную масштабировать базовый экземпляр Центр Интернета вещей, чтобы избежать ограничения. Если это так, обратитесь в службу поддержки Майкрософт.

Предварительные требования

Для настройки отправки файлов необходимо быть администратором в приложении IoT Central.

Для хранения отправленных файлов требуется учетная запись хранения и контейнер Azure. Если у вас нет учетной записи хранения и контейнера, создайте учетную запись хранения на портале Azure.

Настройка отправки файлов с устройства

Чтобы настроить отправку файлов с устройства, выполните следующие действия:

  1. Перейдите в раздел "Приложение " в приложении.

  2. Выберите хранилище файлов устройств.

  3. Выберите учетную запись хранения и контейнер, которые нужно использовать. Если учетная запись хранения находится в подписке Azure, отличной от вашего приложения, введите строку подключения учетной записи хранения.

  4. При необходимости настройте время ожидания отправки, задающее допустимое время запроса. Его можно задать от 1 до 24 часов.

  5. Чтобы пользователи могли просматривать и управлять загруженными файлами в IoT Central, установите Доступ в положение Вкл.

  6. Выберите Сохранить. Когда отображается состояние "Настроено", устройства могут отправлять файлы.

Снимок экрана: правильно настроенная отправка файла.

Рекомендации по предотвращению непредвиденного ограничения в сценариях загрузки файлов

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

  • Распределяйте загрузки по времени на разных устройствах.
  • Избегайте синхронизированных отправки. Например, в начале часа.
  • Реализуйте экспоненциальное замедление на клиентской стороне при 429 / ThrottleBacklogTimeout ошибках.
  • Рассмотрим альтернативные механизмы приема, такие как ввод данных в ADX, конвейеры Fabric или прямые записи в хранилище.
  • Тестирование поведения нагрузки при ожидаемых производственных шаблонах загрузки.

Отключение отправки файлов с устройства

Чтобы отключить отправку файлов устройства в приложении IoT Central, выполните приведенные действия.

  1. Перейдите в раздел "Приложение " в приложении.

  2. Выберите хранилище файлов устройств.

  3. Выберите команду Удалить.

Управление доступом к загруженным файлам

Используйте роли и разрешения для управления тем, кто может просматривать и удалять отправленные файлы. Дополнительные сведения см. в статье Управление пользователями и ролями в приложении IoT Central > Управление устройствами.

Отправка файла с устройства

IoT Central использует функцию отправки файлов Центра Интернета вещей, чтобы устройства могли отправлять файлы. Пример кода, демонстрирующий отправку файлов с устройства, см. в примере устройства отправки файлов IoT Central.

Просмотр загруженных файлов и управление ими

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

Внимание

Все файлы в папке контейнера BLOB-объектов, связанной с устройством, отображаются в представлении "Файлы " для этого устройства, включая все файлы, которые устройство не отправляло.

Чтобы просмотреть и удалить отправленные файлы, перейдите в представление "Файлы " для устройства. На этой странице можно просмотреть эскизы отправленных файлов и переключиться между коллекцией и представлением списка. Каждый файл имеет параметры для скачивания или удаления:

Снимок экрана, на котором показан режим галереи для загруженных файлов.

Совет

Тип MIME, присвоенный файлу при загрузке в хранилище Blob-объектов, определяет его тип файла. Значение по умолчанию — binary/octet-stream.

Настройте представление списка, отфильтровав по имени файла и выбрав отображаемые столбцы.

Чтобы просмотреть содержимое файла и получить дополнительные сведения о нем, выберите его. IoT Central поддерживает предварительные версии распространенных типов файлов, таких как текст и изображения:

Снимок экрана: предварительный просмотр текстового файла.

Проверка отправки файла

После настройки отправки файлов в приложении IoT Central протестируйте его с помощью примера кода. Используйте следующие команды, чтобы клонировать пример репозитория в подходящее расположение на локальном компьютере и установить зависимости:

git clone https://github.com/azure-Samples/iot-central-file-upload-device
cd iotc-file-upload-device
npm i
npm build

Создание шаблона устройства и импорт модели

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

  1. Откройте приложение в пользовательском интерфейсе IoT Central.

  2. Перейдите к шаблонам устройств в левой области и нажмите кнопку "Создать".

  3. Выберите устройство Интернета вещей для типа шаблона.

  4. На странице "Настройка" введите имя, например пример устройства отправки файлов для шаблона устройства.

  5. На странице Отзыв выберите Создать.

  6. Выберите "Импорт модели" и отправьте файл модели FileUploadDeviceDcm.json из iotc-file-upload-device\setup папки в скачанный ранее репозиторий.

  7. Нажмите кнопку "Опубликовать" , чтобы завершить создание шаблона устройства.

Добавить устройство

Чтобы добавить устройство в приложение Azure IoT Central, сделайте следующее:

  1. Перейдите на устройства в левой области.

  2. Выберите шаблон устройства File Upload Device Sample, созданный ранее.

  3. Нажмите кнопку "+ Создать", а затем нажмите кнопку "Создать".

  4. Выберите созданное устройство, а затем нажмите кнопку "Подключить".

Скопируйте значения для ID scope, Device IDи Primary key. Эти значения используются в примере кода устройства.

Запуск примера кода

Откройте репозиторий Git, скачанный в VS Code. Создайте файл .env в корне проекта и добавьте скопированные ранее значения. Файл должен выглядеть как этот образец, но с вашими значениями.

scopeId=<YOUR_SCOPE_ID>
deviceId=<YOUR_DEVICE_ID>
deviceKey=<YOUR_PRIMARY_KEY>
modelId=dtmi:IoTCentral:IotCentralFileUploadDevice;1

Откройте репозиторий Git, скачанный в VS Code. Чтобы запустить или выполнить отладку примера, нажмите клавишу F5. В окне терминала отображается регистрация устройства и подключение к IoT Central:

Starting IoT Central device...
 > Machine: Windows_NT, 8 core, freemem=6674mb, totalmem=16157mb
Starting device registration...
DPS registration succeeded
Connecting the device...
IoT Central successfully connected device: 7z1xo26yd8
Sending telemetry: {
    "TELEMETRY_SYSTEM_HEARTBEAT": 1
}
Sending telemetry: {
    "TELEMETRY_SYSTEM_HEARTBEAT": 1
}
Sending telemetry: {
    "TELEMETRY_SYSTEM_HEARTBEAT": 1
}

Пример проекта содержит пример файла с именемdatafile.json. Этот файл отправляется при использовании команды "Отправить файл " в приложении IoT Central.

Чтобы проверить отправку, откройте приложение и выберите созданное устройство. Перейдите на вкладку «Команда» и нажмите кнопку «Выполнить». При нажатии кнопки "Выполнить" приложение IoT Central вызывает прямой метод на устройстве для отправки файла. Этот прямой метод можно увидеть в примере кода в файле /device.ts. Метод называется uploadFileCommand. Чтобы проверить отправку, откройте приложение и выберите созданное устройство. Перейдите на вкладку "Команда", а затем нажмите кнопку "Выполнить". При нажатии кнопки "Выполнить" IoT Central вызывает прямой метод на устройстве для отправки файла. Этот метод можно увидеть в примере кода в файле /device.ts . Метод называется uploadFileCommand.

Перейдите на вкладку "Необработанные данные ", чтобы проверить состояние отправки файла.

Снимок экрана, показывающий пользовательский интерфейс проверки загрузки файла.

Можно также вызвать REST API , чтобы проверить состояние отправки файла в контейнере хранилища.