Azure IoT Hub 十分钟入门系列 (4)- 实现从设备上传日志文件/图片到 Azure Storage
本文主要分享一个案例:
10分钟内通过Device SDK上传文件到IoTHub
B站视频:https://www.bilibili.com/video/av90224073/
本文主要有如下内容:
1. 了解IoT Hub中文件存储在了哪里
2. 使用Node.js Device SDK 上传TXT文件
3. 在Storage中查看IOT设备上传的文件
图文内容:
本案例参考:https://docs.azure.cn/zh-cn/iot-hub/iot-hub-node-node-file-upload
1. 设备经Device SDK 上传到Azure IoT Hub的文件存储到了Storage中,需提前配置好存储文件用的Storage及容器:

2. 使用Node.js SDK上传文件
下载安装Node.js http://nodejs.cn/
安装Node.js SDK:
npm install azure-iot-device azure-iot-device-mqtt --save
安装过程如下图:

新建文件夹,新建upload_to_blob.js,将下列示例代码拷入upload_to_blob.js中
'use strict';
var Protocol = require('azure-iot-device-mqtt').Mqtt;
var Client = require('azure-iot-device').Client;
var fs = require('fs');
var connectionString = 'YOUR DEIVCE CONNECT STRING';
if (!connectionString) {
console.log('Please set the DEVICE_CONNECTION_STRING environment variable.');
process.exit(-1);
}
var filePath = 'log.txt';
var client = Client.fromConnectionString(connectionString, Protocol);
fs.stat(filePath, function (err, fileStats) {
if (err) {
console.error('could not read file: ' + err.toString());
process.exit(-1);
} else {
var fileStream = fs.createReadStream(filePath);
client.uploadToBlob('testblob.txt', fileStream, fileStats.size, function (err) {
fileStream.destroy();
if (err) {
console.error('error uploading file: ' + err.constructor.name + ': ' + err.message);
process.exit(-1);
} else {
console.log('Upload successful');
process.exit(0);
}
});
}
});
使用以下命令创建 package.json 文件。 接受所有默认值:
npm init
在文件夹中创建 log.txt, 内容随意。
至此,文件夹应该如下图所示:

执行如下命令,运行客户端代码:
node upload_to_blob.js
程序提示如下,表示成功上传文件:

进入Azure Storage 容器中,检查上传结果:

Azure IoT Hub 十分钟入门系列 (4)- 实现从设备上传日志文件/图片到 Azure Storage的更多相关文章
- Azure IoT Hub 十分钟入门系列 (1)- 10分钟带你了解Azure IoT Hub 并创建IoT Hub
建议您先对<Azure 上 IoT 整体解决方案概览 >进行了解. 本文主要分享一个案例: 10分钟-了解Azure IoT Hub并创建Azure IoT Hub 本文主要有如下内容: ...
- Azure IoT Hub 十分钟入门系列 (3)- 使用消息路由将原始设备数据记录存档
本文主要分享一个案例: 10分钟使用消息路由将原始设备数据记录存档 B站视频讲解:https://www.bilibili.com/video/av90223893/ 本文主要有如下内容: 1.理解什 ...
- Azure IoT Hub 十分钟入门系列 (2)- 使用模拟设备发送设备到云(d2c)的消息
本文主要分享一个案例: 10分钟- 使用Python 示例代码和SDK向IoT Hub 发送遥测消息 本文主要有如下内容: 了解C2D/D2C消息: 了解IoT Hub中Device的概念 了解并下载 ...
- 零基础十分钟学会用git在coding.net上传(pull)和push
---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...
- 30分钟连接树莓派到微软云 Azure IoT Hub,并将数据进行可视化
更多内容,关注公众号: 树莓派是很多动手达人必备的小玩具,本节内容,让我们拿出树莓派,在30分钟内,将树莓派连接到微软云Azure的IoT Hub,然后将温湿度曲线可视化.(本节内容完整视频在文章末尾 ...
- Azure IoT Hub和Event Hub相关的技术系列-索引篇
Azure IoT Hub和Event Hub相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. Azure IoT 技术研究系列1-入门篇 Azure IoT 技术研究系列2-设备注册 ...
- Azure IoT 技术研究系列2-起步示例之设备注册到Azure IoT Hub
上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT ...
- Azure IoT 技术研究系列2-设备注册到Azure IoT Hub
上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT ...
- 基于Azure IoT开发.NET物联网应用系列-全新的Azure IoT架构
物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案.我们公司主要搞新能源汽车充电,充电桩就是物联网技术的最大应用,车联网.物联网.互联网三网合一.2017年的时候重点研究过Azure Io ...
随机推荐
- 走进电影院观看VTK
VTK影院模型: 从这个模型去介绍VTK的应用,整个电影院就是VTK的显示窗口(vtkRenderWindow),舞台就是VTK的渲染场景(vtkRenderer),场景中有不同的演员就是VTK的各种 ...
- 数据库之六:聚合函数、group by、having、order by
1.聚合函数: 1.1.COUNT: 计算表中的记录数(行数)可以计算出所有数据行: select count(*) from table_name 可以计算出所有非空行数 select count( ...
- vue使用kkfileview文件预览功能
1.环境要求: java 1.8+ 2.部署运行: 本机以及虚拟机上运行: 1.从https://gitee.com/kekingcn/file-online-preview/releases地址下载 ...
- liunx 使用crontab定时任务+shell脚本删除tomcat日志elasticsearch日志索引
由于过多的日志很占用磁盘空间,今天经理让我写一个脚本删除多余的日志.和es索引 定时删除试根据crontab+shell脚本实现的 crontab配置目录 /var/spool/cron/ 该目录下存 ...
- MySQL数据库重点监控指标
MySQL数据库重点监控指标 QPS queries per seconds 每秒中查询数量 show global status like 'Question%'; Queries/seconds ...
- java 多线程实现四种方式解析Thread,Runnable,Callable,ServiceExcutor,Synchronized ,ReentrantLock
1.Thread实现: import java.util.Date; import java.text.SimpleDateFormat; public class MyThread extends ...
- SpringCloud Netflix Feign
调用其它机器上的服务(远程调用)有2种技术:REST.RPC. REST 注入RestTempalte,服务提供者的url要写成RESTful风格,在url中传递参数. 如果参数很多,url会有一长串 ...
- (GHRD)HPS
DE1作为ARM+FPGA的组合,ARM和FPGA之间通信,两个区块间有三个通道可以让两部分实现传输数据,统称为 HPS-FPGA AXI Bridges. 分别为:FPGA-to-HPS Bridg ...
- 2.7.5 元素定位(主推xpath、cssSelector) ❀❀❀
定位方式选择: 1. 当页面元素有id属性时,最好尽量用id来定位.但由于现实项目中很多程序员其实写的代码并不规范,会缺少很多标准属性,这时就只有选择其他定位方法. 2. xpath很强悍,但定位性能 ...
- 微信环境中如何实现跳转到手机默认外部浏览器下载apk文件
由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时点击下载按钮没反应,我想到的是做一个提示用户在浏览器中打开下载.其实原来很简单,就是判断当前是在微信内置浏览器中 ...