Fájlok feltöltése eszközről a felhőbe az Azure IoT Hub használatával
Ez a cikk bemutatja, hogyan:
- Az IoT Hub fájlfeltöltési képességeivel feltölthet egy fájlt az Azure Blob Storage-ba egy Azure IoT-eszköz és szolgáltatás SDK használatával.
- Értesítse az IoT Hubot, hogy a fájl sikeresen fel lett töltve, és hozzon létre egy háttérszolgáltatást a fájlfeltöltési értesítések fogadásához az IoT Hubtól az Azure IoT szolgáltatás SDK-jaival.
Bizonyos esetekben az eszközök által az IoT Hub által elfogadott, viszonylag kis méretű, eszközről felhőbe irányuló üzenetekbe küldött adatok nem képezhetők le könnyen. Az IoT Hub fájlfeltöltési képességei lehetővé teszik, hogy nagy vagy összetett adatokat helyezzen át a felhőbe. Példa:
- Videók
- Képeket tartalmazó nagyméretű fájlok
- Nagy gyakorisággal mintavételezett rezgési adatok
- Az előre feldolgozott adatok valamilyen formája
Ezeket a fájlokat általában a felhőben, olyan eszközökkel dolgozzák fel, mint az Azure Data Factory vagy a Hadoop-verem . Ha fájlokat kell feltöltenie egy eszközről, továbbra is használhatja az IoT Hub biztonságát és megbízhatóságát. Ez a cikk bemutatja, hogyan.
Ez a cikk az ebben a cikkben hivatkozott futtatható SDK-mintákat hivatott kiegészíteni.
További információk:
Fontos
Az X.509 hitelesítésszolgáltatói (CA) hitelesítést használó eszközökön a fájlfeltöltési funkció nyilvános előzetes verzióban érhető el, és engedélyezni kell az előnézeti módot. Általánosan elérhető x.509 ujjlenyomat-hitelesítést vagy X.509-tanúsítványigazolást használó eszközökön az Azure Device Provisioning Service-ben. Az IoT Hub x.509-hitelesítésével kapcsolatos további információkért lásd a támogatott X.509-tanúsítványokat.
Előfeltételek
Egy IoT Hub. Egyes SDK-hívásokhoz az IoT Hub elsődleges kapcsolati sztring szükséges, ezért jegyezze fel a kapcsolati sztring.
Regisztrált eszköz. Egyes SDK-hívásokhoz az eszköz elsődleges kapcsolati sztring szükséges, ezért jegyezze fel a kapcsolati sztring.
IoT Hub Service Connect-engedély – A fájlfeltöltési értesítési üzenetek fogadásához a háttérszolgáltatásnak Service Connect-engedélyre van szüksége. Alapértelmezés szerint minden IoT Hub egy megosztott hozzáférési szabályzattal jön létre, amely ezt az engedélyt biztosítja. További információ: Csatlakozás IoT Hubhoz.
Konfigurálja a fájlfeltöltést az IoT Hubon egy Azure Storage-fiók és egy Azure Blob Storage-tároló összekapcsolásával. Ezeket az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával konfigurálhatja.
Áttekintés
Ez a útmutató két szakaszt tartalmaz:
- Fájl feltöltése eszközalkalmazásból
- Fájlfeltöltési értesítés fogadása háttéralkalmazásban
Fájl feltöltése eszközalkalmazásból
Ez a szakasz azt ismerteti, hogyan tölthet fel fájlokat egy eszközről egy IoT Hubra az Azure IoT SDK for .NET DeviceClient osztályával.
Ezt az eljárást követve feltölthet egy fájlt egy eszközről az IoT Hubra:
- Csatlakozás az IoT Hubhoz
- SAS URI lekérése az IoT Hubról
- A fájl feltöltése az Azure Storage-ba
- Az IoT Hub értesítése a fájlfeltöltés állapotáról
Csatlakozás az eszközhöz
Hívja meg a CreateFromConnectionStringet az eszközhöz való csatlakozáshoz. Adja át az eszköz elsődleges kapcsolati sztring.
AMQP
az alapértelmezett átviteli protokoll.
static string connectionString = "{device primary connection string}";
deviceClient = DeviceClient.CreateFromConnectionString(connectionString);
SAS URI lekérése az IoT Hubról
Hívja meg a GetFileUploadSasUriAsync parancsot a fájlfeltöltés részleteinek lekéréséhez. Az SAS URI a következő lépésben egy eszközről a Blob Storage-ba való fájlfeltöltésre szolgál.
const string filePath = "TestPayload.txt";
using var fileStreamSource = new FileStream(filePath, FileMode.Open);
var fileName = Path.GetFileName(fileStreamSource.Name);
var fileUploadSasUriRequest = new FileUploadSasUriRequest
{
BlobName = fileName
};
FileUploadSasUriResponse sasUri = await _deviceClient.GetFileUploadSasUriAsync(fileUploadSasUriRequest, System.Threading.CancellationToken cancellationToken = default);
Uri uploadUri = sasUri.GetBlobUri();
Fájl feltöltése az Azure Storage-ba
Fájl feltöltése az Azure Storage-ba:
Hozzon létre egy blockBlobClient objektumot, és adjon át egy fájlfeltöltési URI-t.
Az UploadAsync metódussal feltölthet egy fájlt a Blob Storage-ba, átadva az SAS URI-t. Blobfeltöltési beállításokat és lemondási jogkivonat-paramétereket is megadhat.
Az Azure Blob-ügyfél mindig HTTPS protokollt használ a fájl Azure Storage-ba való feltöltéséhez.
Ebben a példában BlockBlobClient
a rendszer átadja az SAS URI-t egy Azure Storage blokkblobügyfél létrehozásához, és feltölti a fájlt:
var blockBlobClient = new BlockBlobClient(uploadUri);
await blockBlobClient.UploadAsync(fileStreamSource, null, null);
Az IoT Hub értesítése a fájlfeltöltés állapotáról
A CompleteFileUploadAsync használatával értesítse az IoT Hubot arról, hogy az eszközügyfél befejezte a feltöltést, és átad egy FileUploadCompletionNotification objektumot. A IsSuccess
jelölő jelzi, hogy a feltöltés sikeres volt-e. Az értesítés után az IoT Hub felszabadítja a feltöltéshez társított erőforrásokat (az SAS URI-t).
Ha a fájlfeltöltési értesítések engedélyezve vannak, az IoT Hub egy fájlfeltöltési értesítési üzenetet küld a fájlfeltöltési értesítéshez konfigurált háttérszolgáltatásoknak.
var successfulFileUploadCompletionNotification = new FileUploadCompletionNotification
{
// Mandatory. Must be the same value as the correlation id returned in the sas uri response
CorrelationId = sasUri.CorrelationId,
// Mandatory. Will be present when service client receives this file upload notification
IsSuccess = true,
// Optional, user defined status code. Will be present when service client receives this file upload notification
StatusCode = 200,
// Optional, user-defined status description. Will be present when service client receives this file upload notification
StatusDescription = "Success"
};
await _deviceClient.CompleteFileUploadAsync(successfulFileUploadCompletionNotification);
SDK-fájlfeltöltési minta
Az SDK tartalmazza ezt a fájlfeltöltési mintát.
Fájlfeltöltési értesítés fogadása háttéralkalmazásban
Létrehozhat egy háttérszolgáltatást a fájlfeltöltési értesítési üzenetek fogadásához az IoT Hubról.
A ServiceClient osztály olyan metódusokat tartalmaz, amelyekkel a szolgáltatások fájlfeltöltési értesítéseket fogadhatnak.
Fájlfeltöltési értesítés fogadása:
- Hívja meg a CreateFromConnectionStringet az IoT Hubhoz való csatlakozáshoz. Adja át az IoT Hub elsődleges kapcsolati sztring.
- Hozzon létre egy CancellationTokent.
- Hívja meg a GetFileNotificationReceivert egy értesítési fogadó létrehozásához.
- Használjon egy hurkot a ReceiveAsync használatával, hogy megvárja a fájlfeltöltési értesítést.
Példa:
using Microsoft.Azure.Devices;
static ServiceClient serviceClient;
static string connectionString = "{IoT hub connection string}";
serviceClient = ServiceClient.CreateFromConnectionString(connectionString);
// Define the cancellation token
CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;
// Create a notification receiver
var notificationReceiver = serviceClient.GetFileNotificationReceiver();
Console.WriteLine("\nReceiving file upload notification from service");
// Check for file upload notifications
while (true)
{
var fileUploadNotification = await notificationReceiver.ReceiveAsync(token);
if (fileUploadNotification == null) continue;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Received file upload notification: {0}",
string.Join(", ", fileUploadNotification.BlobName));
Console.ResetColor();
await notificationReceiver.CompleteAsync(fileUploadNotification);
}
Áttekintés
Ez a útmutató két szakaszt tartalmaz:
- Fájl feltöltése eszközalkalmazásból
- Fájlfeltöltési értesítés fogadása háttéralkalmazásban
Fájl feltöltése eszközalkalmazásból
Ez a szakasz azt ismerteti, hogyan tölthet fel egy fájlt egy eszközről egy IoT Hubra a Java Azure IoT SDK DeviceClient osztályával.
Ezt az eljárást követve feltölthet egy fájlt egy eszközről az IoT Hubra:
- Csatlakozás az eszközhöz
- SAS URI lekérése az IoT Hubról
- A fájl feltöltése az Azure Storage-ba
- Fájlfeltöltés állapotáról szóló értesítés küldése az IoT Hubnak
Kapcsolati protokoll
A fájlfeltöltési műveletek mindig HTTPS-t használnak, de a DeviceClient meghatározhatja az IotHubClientProtocolt más szolgáltatásokhoz, például a telemetriához, az eszköz metódusához és az ikereszközhöz.
IotHubClientProtocol protocol = IotHubClientProtocol.MQTT;
Csatlakozás az eszközhöz
Példányosíthatja az DeviceClient
eszközhöz való csatlakozáshoz az elsődleges kapcsolati sztring használatával.
String connString = "{IoT hub connection string}";
DeviceClient client = new DeviceClient(connString, protocol);
SAS URI lekérése az IoT Hubról
A getFileUploadSasUri meghívása FileUploadSasUriResponse objektum beszerzéséhez.
FileUploadSasUriResponse
tartalmazza ezeket a metódusokat, és visszaadja az értékeket. A visszatérési értékek átadhatók a fájlfeltöltési módszereknek.
Metódus | Visszaadott érték |
---|---|
getCorrelationId() |
Korrelációs azonosító |
getContainerName() |
Tárolónév |
getBlobName() |
A blob neve |
getBlobUri() |
Blob URI |
Példa:
FileUploadSasUriResponse sasUriResponse = client.getFileUploadSasUri(new FileUploadSasUriRequest(file.getName()));
System.out.println("Successfully got SAS URI from IoT hub");
System.out.println("Correlation Id: " + sasUriResponse.getCorrelationId());
System.out.println("Container name: " + sasUriResponse.getContainerName());
System.out.println("Blob name: " + sasUriResponse.getBlobName());
System.out.println("Blob Uri: " + sasUriResponse.getBlobUri());
A fájl feltöltése az Azure Storage-ba
Adja át a blob URI-végpontját a BlobClientBuilder.buildclientnek a BlobClient objektum létrehozásához.
BlobClient blobClient =
new BlobClientBuilder()
.endpoint(sasUriResponse.getBlobUri().toString())
.buildClient();
Az uploadFromFile meghívásával töltse fel a fájlt a Blob Storage-ba.
String fullFileName = "Path of the file to upload";
blobClient.uploadFromFile(fullFileName);
Fájlfeltöltés állapotáról szóló értesítés küldése az IoT Hubnak
Fájlfeltöltési kísérlet után küldjön egy feltöltési állapotértesítést az IoT Hubnak.
Hozzon létre egy FileUploadCompletionNotification objektumot. Adja meg a correlationId
isSuccess
sikeres fájlfeltöltési állapotot. Adjon meg egy isSuccess
true
értéket, amikor a fájlfeltöltés sikeres volt, false
ha nem.
FileUploadCompletionNotification
akkor is meghívni kell, ha a fájlfeltöltés sikertelen. Az IoT Hub rögzített számú SAS URI-val rendelkezik, amely bármikor aktív lehet. Miután végzett a fájlfeltöltéssel, szabadítsd fel az SAS URI-t, hogy más SAS URI-k is létre tudjanak hozni. Ha egy SAS URI-t nem szabadít fel ezen az API-n keresztül, akkor végül felszabadítja magát attól függően, hogy a SAS URI-k mennyi ideig vannak konfigurálva az IoT Hubon való élethez.
Ez a példa sikeres állapotot ad át.
FileUploadCompletionNotification completionNotification = new FileUploadCompletionNotification(sasUriResponse.getCorrelationId(), true);
client.completeFileUpload(completionNotification);
Az ügyfél bezárása
Szabadítsd fel az client
erőforrásokat.
client.closeNow();
Fájlfeltöltési értesítés fogadása háttéralkalmazásban
Létrehozhat egy háttéralkalmazást a fájlfeltöltési értesítések fogadásához.
Fájlfeltöltési értesítési alkalmazás létrehozása:
- Csatlakozás az IoT Hub szolgáltatásügyfélhöz
- Fájlfeltöltési értesítés keresése
A ServiceClient osztály olyan metódusokat tartalmaz, amelyekkel a szolgáltatások fájlfeltöltési értesítéseket fogadhatnak.
Csatlakozás az IoT Hub szolgáltatásügyfélhöz
Hozzon létre egy objektumot IotHubServiceClientProtocol
. A kapcsolat a protokollt AMQPS
használja.
Hívás createFromConnectionString
az IoT Hubhoz való csatlakozáshoz. Adja át az IoT Hub elsődleges kapcsolati sztring.
private static final String connectionString = "{IoT hub primary connection string}";
private static final IotHubServiceClientProtocol protocol = IotHubServiceClientProtocol.AMQPS;
ServiceClient sc = ServiceClient.createFromConnectionString(connectionString, protocol);
Fájlfeltöltés állapotának ellenőrzése
A fájlfeltöltés állapotának ellenőrzése:
- Hozzon létre egy getFileUploadNotificationReceiver objektumot.
- Az Open használatával csatlakozhat az IoT Hubhoz.
- Hívás fogadása a fájlfeltöltés állapotának ellenőrzéséhez. Ez a metódus egy fileUploadNotification objektumot ad vissza. Ha feltöltési értesítés érkezik, megtekintheti a feltöltési állapotmezőket a fileUploadNotification metódusokkal.
Példa:
FileUploadNotificationReceiver receiver = sc.getFileUploadNotificationReceiver();
receiver.open();
FileUploadNotification fileUploadNotification = receiver.receive(2000);
if (fileUploadNotification != null)
{
System.out.println("File Upload notification received");
System.out.println("Device Id : " + fileUploadNotification.getDeviceId());
System.out.println("Blob Uri: " + fileUploadNotification.getBlobUri());
System.out.println("Blob Name: " + fileUploadNotification.getBlobName());
System.out.println("Last Updated : " + fileUploadNotification.getLastUpdatedTimeDate());
System.out.println("Blob Size (Bytes): " + fileUploadNotification.getBlobSizeInBytes());
System.out.println("Enqueued Time: " + fileUploadNotification.getEnqueuedTimeUtcDate());
}
else
{
System.out.println("No file upload notification");
}
// Close the receiver object
receiver.close();
SDK-fájlfeltöltési minták
Két Java-fájlfeltöltési minta van.
Csomagok telepítése
Az azure-iot-device kódtárat telepíteni kell, mielőtt bármilyen kapcsolódó kódot meghívna.
pip install azure-iot-device
A rendszer az azure.storage.blob csomagot használja a fájlfeltöltés végrehajtásához.
pip install azure.storage.blob
Fájl feltöltése eszközalkalmazásból
Ez a szakasz azt ismerteti, hogyan tölthet fel fájlokat egy eszközről egy IoT Hubra az Azure IoT SDK for Python IoT SDK IoTHubDeviceClient osztályával.
Ezt az eljárást követve feltölthet egy fájlt egy eszközről az IoT Hubra:
- Csatlakozás az eszközhöz
- Blob Storage-információk lekérése
- A fájl feltöltése a Blob Storage-ba
- Az IoT Hub értesítése a feltöltés állapotáról
Kódtárak importálása
import os
from azure.iot.device import IoTHubDeviceClient
from azure.core.exceptions import AzureError
from azure.storage.blob import BlobClient
Csatlakozás az eszközhöz
Az eszközhöz való csatlakozáshoz:
Hívja meg create_from_connection_string az eszköz elsődleges kapcsolati sztring hozzáadásához.
Csatlakozás hívása az eszközügyfél csatlakoztatásához.
Példa:
# Add your IoT hub primary connection string
CONNECTION_STRING = "{Device primary connection string}"
device_client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING)
# Connect the client
device_client.connect()
Blob Storage-információk lekérése
Hívja meg a get_storage_info_for_blob , hogy információt kapjon egy IoT Hubról egy csatolt Azure Storage-fiókról. Ezek az információk tartalmazzák a gazdagép nevét, a tároló nevét, a blobnevet és egy SAS-jogkivonatot. A get_storage_info_for_blob
metódus egy , a metódusban notify_blob_upload_status
használt értéket is visszaadcorrelation_id
. Az correlation_id
IoT Hub így jelöli meg, hogy melyik Blobon dolgozik.
# Get the storage info for the blob
PATH_TO_FILE = "{Full path to local file}"
blob_name = os.path.basename(PATH_TO_FILE)
blob_info = device_client.get_storage_info_for_blob(blob_name)
Fájl feltöltése a Blob Storage-ba
Fájl feltöltése a Blob Storage-ba:
- Blob URL-címből from_blob_url hozhat létre BlobClient-objektumot.
- Hívja meg upload_blob , hogy töltse fel a fájlt a Blob Storage-ba.
Ez a példa egy BlobClient inicializálásához használt URL-cím létrehozásához elemzi a blob_info
struktúrát. Ezután meghívja upload_blob
, hogy töltse fel a fájlt a Blob Storage-ba.
try:
sas_url = "https://{}/{}/{}{}".format(
blob_info["hostName"],
blob_info["containerName"],
blob_info["blobName"],
blob_info["sasToken"]
)
print("\nUploading file: {} to Azure Storage as blob: {} in container {}\n".format(file_name, blob_info["blobName"], blob_info["containerName"]))
# Upload the specified file
with BlobClient.from_blob_url(sas_url) as blob_client:
with open(file_name, "rb") as f:
result = blob_client.upload_blob(f, overwrite=True)
return (True, result)
except FileNotFoundError as ex:
# catch file not found and add an HTTP status code to return in notification to IoT hub
ex.status_code = 404
return (False, ex)
except AzureError as ex:
# catch Azure errors that might result from the upload operation
return (False, ex)
Az IoT Hub értesítése a feltöltés állapotáról
A notify_blob_upload_status használatával értesítheti az IoT Hubot a Blob Storage-művelet állapotáról. Adja át a correlation_id
módszerrel kapott get_storage_info_for_blob
eredményt. Az correlation_id
IoT Hub arra használja, hogy értesítést küldjön minden olyan szolgáltatásnak, amely figyelheti a fájlfeltöltési feladat állapotáról szóló értesítést.
Ez a példa értesíti a sikeres fájlfeltöltés IoT Hubját:
device_client.notify_blob_upload_status(storage_info["correlationId"], True, 200, "OK: {}".format(PATH_TO_FILE)
Az eszközügyfél leállítása
Állítsa le az ügyfelet. A metódus meghívása után a további ügyfélhívások megkísérlése a ClientError indítását eredményezi.
device_client.shutdown()
SDK-fájlfeltöltési minták
Az SDK két fájlfeltöltési mintát tartalmaz:
Áttekintés
Ez a útmutató két szakaszt tartalmaz:
- Fájl feltöltése eszközalkalmazásból
- Fájlfeltöltési értesítés fogadása háttéralkalmazásban
Fájl feltöltése eszközalkalmazásból
Ez a szakasz azt ismerteti, hogyan tölthet fel fájlokat egy eszközről egy IoT Hubra az Azure IoT SDK azure-iot-device csomagjával Node.js.
SDK-csomagok telepítése
Futtassa ezt a parancsot az azure-iot-device SDK, az azure-iot-device-mqtt és a @azure/storage-blobcsomagok telepítéséhez a fejlesztői gépen:
npm install azure-iot-device azure-iot-device-mqtt @azure/storage-blob --save
Az azure-iot-device csomag olyan objektumokat tartalmaz, amelyek IoT-eszközökhöz illesztenek.
Ezt az eljárást követve tölthet fel egy fájlt egy eszközről az IoT Hubra:
- Blob megosztott hozzáférésű jogosultságkódok lekérése
- A fájl feltöltése az Azure Storage-ba
- Fájlfeltöltés állapotáról szóló értesítés küldése az IoT Hubnak
Modulok létrehozása
Hozzon létre ügyfél-, protokoll-, hiba- és elérésiút-modulokat a telepített csomagok használatával.
const Client = require('azure-iot-device').Client;
const Protocol = require('azure-iot-device-mqtt').Mqtt;
const errors = require('azure-iot-common').errors;
const path = require('path');
SAS URI lekérése az IoT Hubról
A getBlobSharedAccessSignature használatával kérje le a társított tárfiók SAS-jogkivonatát az IoT Hubról. Az előfeltételekben leírtak szerint az IoT Hub a Blob Storage-hoz van csatolva.
Példa:
// make sure you set these environment variables prior to running the sample.
const localFilePath = process.env.PATH_TO_FILE;
const storageBlobName = path.basename(localFilePath);
const blobInfo = await client.getBlobSharedAccessSignature(storageBlobName);
if (!blobInfo) {
throw new errors.ArgumentError('Invalid upload parameters');
}
A fájl feltöltése az IoT Hubra
Fájl feltöltése eszközről az IoT Hubra:
- Streamfolyamat létrehozása
- A blob URL-címének létrehozása
- BlockBlobClient létrehozása a Blob Storage-ba való fájlfeltöltéshez
- Az uploadFile meghívása a fájl Blob Storage-ba való feltöltéséhez
- Hívja meg a notifyBlobUploadStatus parancsot, hogy értesítse az IoT Hubot arról, hogy a feltöltés sikeres vagy sikertelen volt
Példa:
// Open the pipeline
const pipeline = newPipeline(new AnonymousCredential(), {
retryOptions: { maxTries: 4 },
telemetry: { value: 'HighLevelSample V1.0.0' }, // Customized telemetry string
keepAliveOptions: { enable: false }
});
// Construct the blob URL
const { hostName, containerName, blobName, sasToken } = blobInfo;
const blobUrl = `https://${hostName}/${containerName}/${blobName}${sasToken}`;
// Create the BlockBlobClient for file upload to Blob Storage
const blobClient = new BlockBlobClient(blobUrl, pipeline);
// Setup blank status notification arguments to be filled in on success/failure
let isSuccess;
let statusCode;
let statusDescription;
const uploadStatus = await blobClient.uploadFile(localFilePath);
console.log('uploadStreamToBlockBlob success');
try {
const uploadStatus = await blobClient.uploadFile(localFilePath);
console.log('uploadStreamToBlockBlob success');
// Save successful status notification arguments
isSuccess = true;
statusCode = uploadStatus._response.status;
statusDescription = uploadStatus._response.bodyAsText;
// Notify IoT hub of upload to blob status (success)
console.log('notifyBlobUploadStatus success');
}
catch (err) {
isSuccess = false;
statusCode = err.code;
statusDescription = err.message;
console.log('notifyBlobUploadStatus failed');
console.log(err);
}
// Send file upload status notification to IoT hub
await client.notifyBlobUploadStatus(blobInfo.correlationId, isSuccess, statusCode, statusDescription);
Fájlfeltöltési értesítés fogadása háttéralkalmazásban
Létrehozhat egy háttéralkalmazást az IoT Hub szolgáltatásügyfél eszközfájl-feltöltési értesítéseinek ellenőrzéséhez.
Fájlfeltöltési értesítési alkalmazás létrehozása:
- Csatlakozás az IoT Hub szolgáltatásügyfélhöz
- Fájlfeltöltési értesítés keresése
Csatlakozás az IoT Hub szolgáltatásügyfélhöz
A ServiceClient osztály olyan metódusokat tartalmaz, amelyekkel a szolgáltatások fájlfeltöltési értesítéseket fogadhatnak.
Csatlakozzon az IoT Hubhoz a FromConnectionString használatával. Adja át az IoT Hub elsődleges kapcsolati sztring.
const Client = require('azure-iothub').Client;
const connectionString = "{IoT hub primary connection string}";
const serviceClient = Client.fromConnectionString(connectionString);
Nyissa meg az IoT Hubhoz való kapcsolatot.
//Open the connection to IoT hub
serviceClient.open(function (err) {
if (err) {
console.error('Could not connect: ' + err.message);
} else {
console.log('Service client connected');
Fájlfeltöltési értesítés keresése
Fájlfeltöltési értesítések keresése:
- Hívja meg a getFileNotificationReceiver parancsot. Adja meg annak a fájlfeltöltési visszahívási metódusnak a nevét, amely az értesítési üzenetek fogadásakor lesz meghívva.
- Fájlfeltöltési értesítések feldolgozása a visszahívási módszerben.
Ez a példa beállít egy értesítési visszahívási fogadót receiveFileUploadNotification
. A fogadó értelmezi a fájlfeltöltés állapotadatait, és állapotüzenetet nyomtat ki a konzolra.
//Set up the receiveFileUploadNotification notification message callback receiver
serviceClient.getFileNotificationReceiver(function receiveFileUploadNotification(err, receiver){
if (err) {
console.error('error getting the file notification receiver: ' + err.toString());
} else {
receiver.on('message', function (msg) {
console.log('File upload from device:')
console.log(msg.getData().toString('utf-8'));
receiver.complete(msg, function (err) {
if (err) {
console.error('Could not finish the upload: ' + err.message);
} else {
console.log('Upload complete');
}
});
});
}
SDK-fájlfeltöltési minta
Az SDK tartalmaz egy feltöltést a blob speciális mintájára.