Megosztás a következőn keresztül:


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:

  1. Csatlakozás az IoT Hubhoz
  2. SAS URI lekérése az IoT Hubról
  3. A fájl feltöltése az Azure Storage-ba
  4. 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:

  1. Hozzon létre egy blockBlobClient objektumot, és adjon át egy fájlfeltöltési URI-t.

  2. 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:

  1. Hívja meg a CreateFromConnectionStringet az IoT Hubhoz való csatlakozáshoz. Adja át az IoT Hub elsődleges kapcsolati sztring.
  2. Hozzon létre egy CancellationTokent.
  3. Hívja meg a GetFileNotificationReceivert egy értesítési fogadó létrehozásához.
  4. 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:

  1. Csatlakozás az eszközhöz
  2. SAS URI lekérése az IoT Hubról
  3. A fájl feltöltése az Azure Storage-ba
  4. 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:

  1. Csatlakozás az IoT Hub szolgáltatásügyfélhöz
  2. 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:

  1. Hozzon létre egy getFileUploadNotificationReceiver objektumot.
  2. Az Open használatával csatlakozhat az IoT Hubhoz.
  3. 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:

  1. Csatlakozás az eszközhöz
  2. Blob Storage-információk lekérése
  3. A fájl feltöltése a Blob Storage-ba
  4. 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:

  1. Hívja meg create_from_connection_string az eszköz elsődleges kapcsolati sztring hozzáadásához.

  2. 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:

  1. Blob URL-címből from_blob_url hozhat létre BlobClient-objektumot.
  2. 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:

  1. Blob megosztott hozzáférésű jogosultságkódok lekérése
  2. A fájl feltöltése az Azure Storage-ba
  3. 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:

  1. Streamfolyamat létrehozása
  2. A blob URL-címének létrehozása
  3. BlockBlobClient létrehozása a Blob Storage-ba való fájlfeltöltéshez
  4. Az uploadFile meghívása a fájl Blob Storage-ba való feltöltéséhez
  5. 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:

  1. Csatlakozás az IoT Hub szolgáltatásügyfélhöz
  2. 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:

  1. 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.
  2. 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.