有没有办法取消从设备客户端到IoT中心的所有正在进行的上传?

时间:2020-08-05 13:37:19

标签: azure azure-iot-hub

我们有一个应用程序,可通过C设备客户端SDK及其IoTHubDeviceClient_UploadToBlobAsync函数将数据连续上传到Azure IoT中心。我们希望并行启动尽可能多的上载以优化上载速度,但是我们经常会突然断电。这导致设备收到错误403,该错误表明设备已超过10个正在进行的上传限制,因为上传已开始但未正确完成。这意味着我们必须等待IoT中心中的SaS令牌过期,然后才能开始任何新的上传(默认为1小时)。

我了解上传的最后步骤要求设备通知IoT中心有关上传完成的信息,但是有一种方法可以通知IoT中心它应“重置”并丢弃/标记完成所有正在进行的操作上传?它可以来自设备端,也可以来自与Azure IoT中心连接的任何后端过程。

我们已尝试将SaS令牌的到期时间减少到1分钟,但似乎不允许少于30分钟的时间,这对于我们最常用的操作来说太长了。

1 个答案:

答案 0 :(得分:0)

基本上, UploadToBlobAsync 方法是将REST API封装到Azure IoT中心以retrieve a storage SaS UR I并通知status of the completion的方式。

基于上述REST API,您可以控制通过Azure IoT中心上载blob文件。

有关上述REST API调用用法的更多详细信息,请参见herehere