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

时间:2019-10-07 13:42:44

标签: java azure iot

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

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

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

只是想知道Azure IoT中心当前是否支持此功能,我可以直接使用此功能(通过使用Azure IoT API)在IoT设备应用程序中。

任何参考资料都会有所帮助。

谢谢

Avinash Deshmukh

2 个答案:

答案 0 :(得分:0)

是的,可以。众所周知,您可以使用其SAS令牌生成Azure Blob文件的URL,以从IoTHub作为云到设备消息的形式发送该文件,然后从IoT设备接收它,并通过带有SAS令牌的文件URL下载文件直接在IoT设备上。

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

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

希望有帮助。

答案 1 :(得分:0)

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