다음을 통해 공유


Azure IoT Hub를 사용하여 디바이스에서 클라우드로 파일 업로드

이 문서에서는 다음을 수행하는 방법을 보여줍니다.

  • IoT Hub의 파일 업로드 기능을 사용하여 Azure IoT 디바이스 및 서비스 SDK를 사용하여 Azure Blob Storage에 파일을 업로드합니다.
  • 파일이 성공적으로 업로드되었음을 IoT Hub에 알리고 Azure IoT 서비스 SDK를 사용하여 IoT Hub에서 파일 업로드 알림을 수신하는 백 엔드 서비스를 만듭니다.

일부 시나리오에서는 디바이스가 보내는 데이터를 IoT Hub에서 허용하는 비교적 작은 디바이스-클라우드 메시지에 쉽게 매핑할 수 없습니다. IoT Hub의 파일 업로드 기능을 사용하면 크거나 복잡한 데이터를 클라우드로 이동할 수 있습니다. 예시:

  • 비디오
  • 이미지가 포함된 대형 파일
  • 자주 샘플링되는 진동 데이터
  • 특정 형태의 전처리된 데이터

이러한 파일은 일반적으로 Azure Data Factory 또는 Hadoop 스택과 같은 도구를 사용하여 클라우드에서 일괄 처리됩니다. 디바이스에서 파일을 업로드해야 할 때 IoT Hub의 보안 및 안정성을 여전히 사용할 수 있습니다. 이 문서에서 그 방법을 보여줍니다.

이 문서는 이 문서 내에서 참조되는 실행 가능한 SDK 샘플을 보완하기 위한 것입니다.

자세한 내용은 다음을 참조하세요.

Important

X.509 CA(인증 기관) 인증을 사용하는 디바이스의 파일 업로드 기능은 공개 미리 보기로 제공되고 있으며 미리 보기 모드를 사용하도록 설정해야 합니다. Azure Device Provisioning Service와 함께 X.509 지문 인증 또는 X.509 인증서 증명을 사용하는 디바이스에서 일반적으로 사용할 수 있습니다. IoT Hub를 사용하는 X.509 인증에 대해 자세히 알아보려면 지원되는 X.509 인증서를 참조하세요.

필수 조건

  • IoT Hub입니다. 일부 SDK 호출에는 IoT Hub 기본 연결 문자열 필요하므로 연결 문자열 기록해 둡니다.

  • 등록된 디바이스입니다. 일부 SDK 호출에는 디바이스 기본 연결 문자열 필요하므로 연결 문자열 기록해 두십시오.

  • IoT Hub 서비스 연결 권한 - 파일 업로드 알림 메시지를 받으려면 백 엔드 서비스에 서비스 연결 권한이 필요합니다. 기본적으로 모든 IoT Hub는 이 사용 권한을 부여하는 service라는 공유 액세스 정책을 사용하여 만듭니다. 자세한 내용은 IoT Hub에 연결을 참조하세요.

  • Azure Storage 계정Azure Blob Storage 컨테이너를 연결하여 IoT Hub에서 파일 업로드를 구성합니다. Azure Portal, Azure CLI 또는 Azure PowerShell을 사용하여 구성할 수 있습니다.

개요

이 방법에서는 다음 두 섹션을 포함합니다.

  • 디바이스 애플리케이션에서 파일 업로드
  • 백 엔드 애플리케이션에서 파일 업로드 알림 받기

디바이스 애플리케이션에서 파일 업로드

이 섹션에서는 .NET용 Azure IoT SDK의 DeviceClient 클래스를 사용하여 디바이스에서 IoT Hub로 파일을 업로드하는 방법을 설명합니다.

디바이스에서 IoT Hub로 파일을 업로드하려면 다음 절차를 따르세요.

  1. IoT Hub에 연결
  2. IoT Hub에서 SAS URI 가져오기
  3. Azure Storage에 파일 업로드
  4. IoT Hub에 파일 업로드 상태 알림

디바이스에 연결

CreateFromConnectionString을 호출하여 디바이스에 연결합니다. 디바이스 기본 연결 문자열 전달합니다.

AMQP 는 기본 전송 프로토콜입니다.

static string connectionString = "{device primary connection string}";
deviceClient = DeviceClient.CreateFromConnectionString(connectionString);

IoT Hub에서 SAS URI 가져오기

GetFileUploadSasUriAsync를 호출하여 파일 업로드 세부 정보를 가져옵니다. SAS URI는 다음 단계에서 디바이스에서 Blob Storage로 파일을 업로드하는 데 사용됩니다.

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();

Azure Storage에 파일 업로드

Azure Storage에 파일을 업로드하려면 다음을 수행합니다.

  1. 파일 업로드 URI를 전달하는 blockBlobClient 개체를 만듭니다.

  2. UploadAsync 메서드를 사용하여 BLOB Storage에 파일을 업로드하고 SAS URI를 전달합니다. 필요에 따라 Blob 업로드 옵션 및 취소 토큰 매개 변수를 추가할 수 있습니다.

Azure Blob 클라이언트는 항상 HTTPS를 프로토콜로 사용하여 Azure Storage에 파일을 업로드합니다.

이 예제 BlockBlobClient 에서는 AZURE Storage 블록 Blob 클라이언트를 만들기 위해 SAS URI를 전달하고 파일을 업로드합니다.

var blockBlobClient = new BlockBlobClient(uploadUri);
await blockBlobClient.UploadAsync(fileStreamSource, null, null);

IoT Hub에 파일 업로드 상태 알림

CompleteFileUploadAsync를 사용하여 디바이스 클라이언트가 업로드를 완료했음을 IoT Hub에 알리고 FileUploadCompletionNotification 개체를 전달합니다. 플래그는 IsSuccess 업로드에 성공했는지 여부를 나타냅니다. 알림을 받은 후 IoT Hub는 업로드(SAS URI)와 연결된 리소스를 해제합니다.

파일 업로드 알림을 사용하도록 설정하면 IoT Hub는 파일 업로드 알림에 대해 구성된 백 엔드 서비스에 파일 업로드 알림 메시지를 보냅니다.

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 파일 업로드 샘플

SDK에는 이 파일 업로드 샘플이 포함되어 있습니다.

백 엔드 애플리케이션에서 파일 업로드 알림 받기

IoT Hub에서 파일 업로드 알림 메시지를 수신하는 백 엔드 서비스를 만들 수 있습니다.

ServiceClient 클래스에는 서비스에서 파일 업로드 알림을 받는 데 사용할 수 있는 메서드가 포함되어 있습니다.

파일 업로드 알림을 받으려면 다음을 수행합니다.

  1. CreateFromConnectionString을 호출하여 IoT Hub에 연결합니다. IoT Hub 기본 연결 문자열 전달합니다.
  2. CancellationToken만듭니다.
  3. GetFileNotificationReceiver를 호출하여 알림 수신기를 만듭니다.
  4. ReceiveAsync와 함께 루프를 사용하여 파일 업로드 알림을 기다립니다.

예시:

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);
}

개요

이 방법에서는 다음 두 섹션을 포함합니다.

  • 디바이스 애플리케이션에서 파일 업로드
  • 백 엔드 애플리케이션에서 파일 업로드 알림 받기

디바이스 애플리케이션에서 파일 업로드

이 섹션에서는 Java용 Azure IoT SDK의 DeviceClient 클래스를 사용하여 디바이스에서 IoT Hub로 파일을 업로드하는 방법을 설명합니다.

디바이스에서 IoT Hub로 파일을 업로드하려면 다음 절차를 따르세요.

  1. 디바이스에 연결
  2. IoT Hub에서 SAS URI 가져오기
  3. Azure Storage에 파일 업로드
  4. IoT Hub에 파일 업로드 상태 알림 보내기

연결 프로토콜

파일 업로드 작업은 항상 HTTPS를 사용하지만 DeviceClient는 원격 분석, 디바이스 메서드 및 디바이스 쌍과 같은 다른 서비스에 대한 IotHubClientProtocol을 정의할 수 있습니다.

IotHubClientProtocol protocol = IotHubClientProtocol.MQTT;

디바이스에 연결

디바이스 기본 연결 문자열 사용하여 디바이스에 연결하려면 인스턴스화 DeviceClient 합니다.

String connString = "{IoT hub connection string}";
DeviceClient client = new DeviceClient(connString, protocol);

IoT Hub에서 SAS URI 가져오기

getFileUploadSasUri를 호출하여 FileUploadSasUriResponse 개체를 가져옵니다.

FileUploadSasUriResponse 에는 이러한 메서드 및 반환 값이 포함됩니다. 반환 값은 파일 업로드 메서드에 전달할 수 있습니다.

메서드 반환 값
getCorrelationId() 상관 관계 ID
getContainerName() 컨테이너 이름
getBlobName() Blob 이름
getBlobUri() Blob URI

예시:

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());

Azure Storage에 파일 업로드

BlobClient 개체를 만들려면 BlobClientBuilder.buildclient에 Blob URI 엔드포인트를 전달합니다.

BlobClient blobClient =
    new BlobClientBuilder()
        .endpoint(sasUriResponse.getBlobUri().toString())
        .buildClient();

uploadFromFile을 호출하여 Blob Storage에 파일을 업로드합니다.

String fullFileName = "Path of the file to upload";
blobClient.uploadFromFile(fullFileName);

IoT Hub에 파일 업로드 상태 알림 보내기

파일 업로드 시도 후 IoT Hub에 업로드 상태 알림을 보냅니다.

FileUploadCompletionNotification 개체를 만듭니다. correlationId 파일 업로드 성공 상태를 전달합니다isSuccess. 파일 업로드에 isSuccess true 성공 false 했을 때 그렇지 않은 경우 값을 전달합니다.

FileUploadCompletionNotification 는 파일 업로드가 실패하는 경우에도 호출되어야 합니다. IoT Hub에는 지정된 시간에 활성화할 수 있는 고정된 수의 SAS URI가 있습니다. 파일 업로드가 완료되면 다른 SAS URI를 생성할 수 있도록 SAS URI를 해제해야 합니다. 이 API를 통해 SAS URI를 해제하지 않으면 결국 SAS URI가 IoT Hub에 상주하도록 구성된 기간에 따라 자체적으로 해제됩니다.

이 예제에서는 성공적인 상태를 전달합니다.

FileUploadCompletionNotification completionNotification = new FileUploadCompletionNotification(sasUriResponse.getCorrelationId(), true);
client.completeFileUpload(completionNotification);

클라이언트 닫기

리소스를 client 해제합니다.

client.closeNow();

백 엔드 애플리케이션에서 파일 업로드 알림 받기

파일 업로드 알림을 수신하는 백 엔드 애플리케이션을 만들 수 있습니다.

파일 업로드 알림 애플리케이션을 만들려면 다음을 수행합니다.

  1. IoT Hub 서비스 클라이언트에 연결
  2. 파일 업로드 알림 확인

ServiceClient 클래스에는 서비스에서 파일 업로드 알림을 받는 데 사용할 수 있는 메서드가 포함되어 있습니다.

IoT Hub 서비스 클라이언트에 연결

IotHubServiceClientProtocol 개체를 만듭니다. 연결은 프로토콜을 AMQPS 사용합니다.

IoT Hub에 연결하기 위한 호출 createFromConnectionString 입니다. IoT Hub 기본 연결 문자열 전달합니다.

private static final String connectionString = "{IoT hub primary connection string}";
private static final IotHubServiceClientProtocol protocol = IotHubServiceClientProtocol.AMQPS;
ServiceClient sc = ServiceClient.createFromConnectionString(connectionString, protocol);

파일 업로드 상태 확인

파일 업로드 상태를 확인하려면 다음을 수행합니다.

  1. getFileUploadNotificationReceiver 개체를 만듭니다.
  2. Open을 사용하여 IoT Hub에 연결합니다.
  3. 수신을 호출하여 파일 업로드 상태를 확인합니다. 이 메서드는 fileUploadNotification 개체를 반환합니다. 업로드 알림이 수신되면 fileUploadNotification 메서드를 사용하여 업로드 상태 필드를 볼 수 있습니다.

예시:

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 파일 업로드 샘플

두 개의 Java 파일 업로드 샘플이 있습니다.

패키지 설치

관련된 코드를 호출하기 전에 azure-iot-device 라이브러리를 설치해야 합니다.

pip install azure-iot-device

azure.storage.blob 패키지는 파일 업로드를 수행하는 데 사용됩니다.

pip install azure.storage.blob

디바이스 애플리케이션에서 파일 업로드

이 섹션에서는 Python용 Azure IoT SDK에서 IoTHubDeviceClient 클래스를 사용하여 디바이스에서 IoT Hub로 파일을 업로드하는 방법을 설명합니다.

디바이스에서 IoT Hub로 파일을 업로드하려면 다음 절차를 따르세요.

  1. 디바이스에 연결
  2. Blob Storage 정보 가져오기
  3. Blob Storage에 파일 업로드
  4. IoT Hub에 업로드 상태 알림

라이브러리 가져오기

import os
from azure.iot.device import IoTHubDeviceClient
from azure.core.exceptions import AzureError
from azure.storage.blob import BlobClient

디바이스에 연결

디바이스에 연결하려면 다음을 수행합니다.

  1. create_from_connection_string 호출하여 디바이스 기본 연결 문자열 추가합니다.

  2. 연결을 호출하여 디바이스 클라이언트를 연결합니다.

예시:

# 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 정보 가져오기

get_storage_info_for_blob 호출하여 연결된 Azure Storage 계정에 대한 정보를 IoT Hub에서 가져옵니다. 이 정보에는 호스트 이름, 컨테이너 이름, blob 이름 및 SAS 토큰이 포함됩니다. 메서드는 get_storage_info_for_blob 메서드에 correlation_idnotify_blob_upload_status 사용되는 메서드도 반환합니다. 작업 correlation_id 중인 Blob을 표시하는 IoT Hub의 방법입니다.

# 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)

Blob Storage에 파일 업로드

Blob Storage에 파일을 업로드하려면 다음을 수행합니다.

  1. from_blob_url 사용하여 Blob URL에서 BlobClient 개체를 만듭니 다.
  2. upload_blob 호출하여 Blob Storage에 파일을 업로드합니다.

이 예제에서는 blob_info 구조를 구문 분석하여 BlobClient를 초기화하는 데 사용하는 URL을 만듭니다. 그런 다음 Blob Storage에 파일을 업로드하도록 호출 upload_blob 합니다.

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)

IoT Hub에 업로드 상태 알림

notify_blob_upload_status 사용하여 Blob Storage 작업의 상태를 IoT Hub에 알립니다. 메서드에서 correlation_id 가져온 값을 전달합니다 get_storage_info_for_blob . correlation_id IoT Hub에서 파일 업로드 작업의 상태에 대한 알림을 수신 대기할 수 있는 모든 서비스에 알리는 데 사용됩니다.

이 예제에서는 IoT Hub에 파일 업로드 성공에 대해 알 수 있습니다.

device_client.notify_blob_upload_status(storage_info["correlationId"], True, 200, "OK: {}".format(PATH_TO_FILE)

디바이스 클라이언트 종료

클라이언트를 종료합니다. 이 메서드가 호출되면 클라이언트 호출을 추가로 시도하면 ClientError발생합니다.

device_client.shutdown()

SDK 파일 업로드 샘플

SDK에는 다음 두 개의 파일 업로드 샘플이 포함되어 있습니다.

개요

이 방법에서는 다음 두 섹션을 포함합니다.

  • 디바이스 애플리케이션에서 파일 업로드
  • 백 엔드 애플리케이션에서 파일 업로드 알림 받기

디바이스 애플리케이션에서 파일 업로드

이 섹션에서는 Node.js 위해 Azure IoT SDK의 azure-iot-device 패키지를 사용하여 디바이스 에서 IoT Hub로 파일을 업로드하는 방법을 설명합니다.

SDK 패키지 설치

이 명령을 실행하여 개발 머신에 azure-iot-device 디바이스 SDK, azure-iot-device-mqtt@azure/storage-blob 패키지를 설치합니다.

npm install azure-iot-device azure-iot-device-mqtt @azure/storage-blob --save

azure-iot-device 패키지에는 IoT 디바이스와 인터페이스하는 개체가 포함되어 있습니다.

디바이스에서 IoT Hub로 파일을 업로드하려면 다음 절차를 따르세요.

  1. Blob 공유 액세스 서명 가져오기
  2. Azure Storage에 파일 업로드
  3. IoT Hub에 파일 업로드 상태 알림 보내기

모듈 만들기

설치된 패키지를 사용하여 클라이언트, 프로토콜, 오류 및 경로 모듈을 만듭니다.

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');

IoT Hub에서 SAS URI 가져오기

getBlobSharedAccessSignature를 사용하여 IoT Hub에서 연결된 스토리지 계정 SAS 토큰을 가져옵니다. 필수 구성 요소에 설명된 대로 IoT Hub는 Blob Storage에 연결됩니다.

예시:

// 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');
}

IoT Hub에 파일 업로드

디바이스에서 IoT Hub로 파일을 업로드하려면 다음을 수행합니다.

  1. 스트림 파이프라인 만들기
  2. Blob URL 생성
  3. Blob Storage에 파일 업로드를 위한 BlockBlobClient 만들기
  4. uploadFile을 호출하여 Blob Storage에 파일 업로드
  5. notifyBlobUploadStatus를 호출하여 업로드가 성공했거나 실패했음을 IoT Hub에 알립니다.

예시:

// 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);

백 엔드 애플리케이션에서 파일 업로드 알림 받기

백 엔드 애플리케이션을 만들어 디바이스 파일 업로드 알림에 대한 IoT Hub 서비스 클라이언트를 확인할 수 있습니다.

파일 업로드 알림 애플리케이션을 만들려면 다음을 수행합니다.

  1. IoT Hub 서비스 클라이언트에 연결
  2. 파일 업로드 알림 확인

IoT Hub 서비스 클라이언트에 연결

ServiceClient 클래스에는 서비스에서 파일 업로드 알림을 받는 데 사용할 수 있는 메서드가 포함되어 있습니다.

fromConnectionString을 사용하여 IoT Hub에 연결합니다. IoT Hub 기본 연결 문자열 전달합니다.

const Client = require('azure-iothub').Client;
const connectionString = "{IoT hub primary connection string}";
const serviceClient = Client.fromConnectionString(connectionString);

IoT Hub에 대한 연결을 엽니다 .

//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');

파일 업로드 알림 확인

파일 업로드 알림을 확인하려면 다음을 수행합니다.

  1. getFileNotificationReceiver를 호출 합니다. 알림 메시지를 받을 때 호출되는 파일 업로드 콜백 메서드의 이름을 제공합니다.
  2. 콜백 메서드에서 파일 업로드 알림을 처리합니다.

이 예제에서는 알림 콜백 수신기를 receiveFileUploadNotification 설정합니다. 수신자가 파일 업로드 상태 정보를 해석하고 상태 메시지를 콘솔에 출력합니다.

//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 파일 업로드 샘플

SDK에는 Blob 고급 샘플에 대한 업로드가 포함되어 있습니다.