Azure IoT 中心 - 使用 IoT 中心将文件从 Azure blob 下载到 IoT 设备

Posted

技术标签:

【中文标题】Azure IoT 中心 - 使用 IoT 中心将文件从 Azure blob 下载到 IoT 设备【英文标题】:Azure IoT Hub - Downloading file from Azure blob using IoT Hub to an IoT device 【发布时间】:2019-10-07 13:42:44 【问题描述】:

我有一个用例,我需要将文件从 Azure blob 位置下载到在 IoT 中心注册的 IoT 设备。

在这种情况下,我将向 IoT 设备(通过 IoT 中心)发送一条指令,以将文件从 Azure blob 位置下载到机器上的特定目标(运行 IoT 设备应用程序的位置)。

这些说明将使用后端(定制)应用程序通过 IoT 中心发送。

只是想知道 Azure IoT Hub 目前是否支持我可以直接在 IoT 设备应用程序中使用的这个工具(通过使用 Azure IoT API)。

任何参考都会有所帮助。

谢谢,

阿维纳什·德什穆赫

【问题讨论】:

【参考方案1】:

是的,当然。正如我所知,您可以使用其 SAS 令牌生成 Azure Blob 文件的 url,以将其作为来自 IoTHub 的云到设备消息发送,然后从 IoT 设备接收它并通过带有 SAS 令牌的文件 url 下载文件直接在 IoT 设备上。

作为参考,你可以参考这些官方文档来尝试实现。

    要生成带有 SAS 令牌的 blob url,请参考Create an account SAS with .NET。如果您使用的是 Java,我认为使用 Azure Storage SDK for Java 编写 Java 非常简单。 要从 IoTHub 发送云到设备消息,请参考Send cloud-to-device messages with IoT Hub (Java)。 要在设备上接收 c2d 消息,所有语言的 REST API 为 Device - Receive Device Bound Notification。或者您可以通过搜索关键字D2C来参考示例代码SendReceive.java部分,了解如何从IoT Hub中检索消息。 如果您必须从设备上的 IoT 中心获取带有 SAS 令牌的 blob url,我认为您从公共链接下载文件并不难。

希望对你有帮助。

【讨论】:

嗨彼得潘,感谢您提供方法。我将尝试实施您提供的解决方案。再次感谢!!【参考方案2】:

是的,您可以通过使用 azure cloud 到设备消息传递来做到这一点。在数据参数中,您可以直接传递 blob 对象 url,但确保它属于正确的安全组。 可以关注文章https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-c2d

【讨论】:

以上是关于Azure IoT 中心 - 使用 IoT 中心将文件从 Azure blob 下载到 IoT 设备的主要内容,如果未能解决你的问题,请参考以下文章

如何使用数据工厂将 IoT 中心存储的 blob 复制到 Azure SQL

无法将云到设备消息发送到 Azure IoT 中心

如何将使用者组定义到 Azure IoT 中心?

Azure IoT中心示例ESP8266编译器错误

带有 IoT 中心的 Azure Functions 无法检索分区

Azure IoT 中心 AMQP 通信多路复用