Есть ли способ отменить все текущие загрузки в Центр Интернета вещей с клиента устройства? - PullRequest
0 голосов
/ 05 августа 2020

У нас есть приложение, которое непрерывно загружает данные в Azure IoT Hub через клиентский SDK устройства C и его функцию IoTHubDeviceClient_UploadToBlobAsyn c. Мы хотим начать как можно больше загрузок параллельно, чтобы оптимизировать скорость загрузки, но мы также часто получаем резкие отключения питания. Это привело к тому, что устройства получили ошибку 403 , в которой говорится, что устройство превысило лимит в 10 текущих загрузок, потому что загрузка была начата, но не завершена правильно. Это означает, что нам нужно дождаться истечения срока действия токена SaS в Центре Интернета вещей, прежде чем мы сможем начать любую новую загрузку (по умолчанию 1 час).

Я понимаю, что на последних этапах загрузки требуется, чтобы устройство уведомило Центр Интернета вещей о завершении загрузки, но есть ли способ сообщить Центру Интернета вещей, что он должен «сбросить» и отклонить / пометить как завершенные любые текущие загрузки? Это может быть как со стороны устройства, так и с любого внутреннего процесса, подключенного к Azure IoT Hub.

Мы пытались сократить время истечения срока действия токена SaS до 1 минуты, но это не так. Похоже, что он позволяет меньше, чем ~ 30 минут, что немного слишком долго для нашей наиболее распространенной операции.

1 Ответ

0 голосов
/ 05 августа 2020

По сути, метод UploadToBlobAsyn c представляет собой оболочку вокруг REST API для Azure IoT Hub для извлечения хранилища SaS UR I и уведомления о состоянии завершения .

На основе вышеупомянутых API-интерфейсов REST вы можете управлять загрузкой файла большого двоичного объекта через Azure IoT Hub.

Подробнее об использовании указанного выше REST Вызовы API можно найти здесь и здесь .

...