本文主要分享一個案例:
10分鐘內通過Device SDK上傳文件到IoTHub
B站視頻:
Azure IoT Hub 十分鐘入門系列(4)-文件上傳
本文主要有如下內容:
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 容器中,檢查上傳結果: