我在将遥测数据/ json保存到Blob存储中时遇到问题。 问题在于保存的数据已经对我宝贵的遥测数据进行了加密。
{"EnqueuedTimeUtc":"2019-11-25T15:42:51.5340000Z","Properties":{},"SystemProperties":{"to":"/devices/device-08/messages/events","connectionDeviceId":"device-08","connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}","connectionDeviceGenerationId":"xxxxxxxxxxxxx","contentEncoding":"","enqueuedTime":"2019-11-25T15:42:51.5340000Z"},"Body":"eyJ0ZW1wIjo3LjM5LCJodW0iOjczLjUsInJzc2kiOi04OSwic25yIjo4Ljh9"}
我认为问题还在于“ contentEncoding”:“”,因为它应该是“ contentEncoding”:“ utf-8”。
有人知道如何解决这个问题:)非常感谢您的努力!
答案 0 :(得分:3)
看看this文档。
将设备消息系统属性,例如 contentType 设置为 application / json ,将 contentEncoding 设置为 UTF-8 >。
在您的设备直接使用MQTT协议的情况下,请使用主题来传递系统属性,例如:
devices/mydeviceId/messages/events/$.ct=application%2Fjson&$.ce=utf-8
更新:
以下屏幕片段显示了将数据导出到Blob存储的快速测试示例。
如您所见,已发布的主题是
devices/device1/messages/events/$.ct=application%2Fjson&$.ce=utf-8
和6条消息已发送到IoT中心。
如您所见,每条设备消息的主体都不是Base64编码的json文本。
请注意,只有设备消息的 contentType 和 contentEncoding 会决定正文是否为Base64编码。