我们有一个应用程序,可通过C设备客户端SDK及其IoTHubDeviceClient_UploadToBlobAsync函数将数据连续上传到Azure IoT中心。我们希望并行启动尽可能多的上载以优化上载速度,但是我们经常会突然断电。这导致设备收到错误403,该错误表明设备已超过10个正在进行的上传限制,因为上传已开始但未正确完成。这意味着我们必须等待IoT中心中的SaS令牌过期,然后才能开始任何新的上传(默认为1小时)。
我了解上传的最后步骤要求设备通知IoT中心有关上传完成的信息,但是有一种方法可以通知IoT中心它应“重置”并丢弃/标记完成所有正在进行的操作上传?它可以来自设备端,也可以来自与Azure IoT中心连接的任何后端过程。
我们已尝试将SaS令牌的到期时间减少到1分钟,但似乎不允许少于30分钟的时间,这对于我们最常用的操作来说太长了。
答案 0 :(得分:0)
基本上, UploadToBlobAsync 方法是将REST API封装到Azure IoT中心以retrieve a storage SaS UR I并通知status of the completion的方式。
基于上述REST API,您可以控制通过Azure IoT中心上载blob文件。