Azure IoT Hub ile bir cihazdan buluta dosya yükleme
Bu makalede şunların nasıl yapılacağını gösterilmektedir:
- Azure IoT cihazı ve hizmet SDK'larını kullanarak Azure Blob Depolama'a dosya yüklemek için IoT Hub'ın dosya yükleme özelliklerini kullanın.
- Dosyanın başarıyla karşıya yüklendiğini IoT Hub'a bildirin ve Azure IoT hizmeti SDK'larını kullanarak IoT Hub'dan dosya yükleme bildirimleri almak için bir arka uç hizmeti oluşturun.
Bazı senaryolarda, cihazlarınızın gönderdiği verileri IoT Hub'ın kabul eden nispeten küçük cihazdan buluta iletilerine kolayca eşleyemezsiniz. IoT Hub'daki dosya yükleme özellikleri, büyük veya karmaşık verileri buluta taşımanızı sağlar. Örneğin:
- Videolar
- Görüntü içeren büyük dosyalar
- Yüksek frekansta örneklenen titreşim verileri
- Önceden işlenmiş verilerin bir biçimi
Bu dosyalar genellikle Azure Data Factory veya Hadoop yığını gibi araçlar kullanılarak bulutta toplu olarak işlenir. Bir cihazdan dosya yüklemeniz gerektiğinde IoT Hub'ın güvenliğini ve güvenilirliğini kullanmaya devam edebilirsiniz. Bu makalede nasıl yapıldığını görebilirsiniz.
Bu makale, bu makalenin içinden başvurulan çalıştırılabilir SDK örneklerini tamamlamaya yöneliktir.
Daha fazla bilgi için bkz.
Önemli
X.509 sertifika yetkilisi (CA) kimlik doğrulaması kullanan cihazlarda dosya yükleme işlevi genel önizleme aşamasındadır ve önizleme modunun etkinleştirilmesi gerekir. Azure Cihaz Sağlama Hizmeti ile X.509 parmak izi kimlik doğrulaması veya X.509 sertifika kanıtlama kullanan cihazlarda genel olarak kullanılabilir. IoT Hub ile X.509 kimlik doğrulaması hakkında daha fazla bilgi edinmek için bkz . Desteklenen X.509 sertifikaları.
Önkoşullar
Bir IoT hub'ı. Bazı SDK çağrıları IoT Hub birincil bağlantı dizesi gerektirir, bu nedenle bağlantı dizesi not edin.
Kayıtlı bir cihaz. Bazı SDK çağrıları, cihazın birincil bağlantı dizesi gerektirir, bu nedenle bağlantı dizesi not edin.
IoT Hub Service Connect izni - Dosya karşıya yükleme bildirim iletilerini almak için arka uç hizmetinizin Service Connect iznine sahip olması gerekir. Varsayılan olarak, her IoT Hub bu izni veren hizmet adlı bir paylaşılan erişim ilkesiyle oluşturulur. Daha fazla bilgi için bkz . IoT hub'ına bağlanma.
Azure Depolama hesabını ve Azure Blob Depolama kapsayıcısını bağlayarak IoT hub'ınıza dosya yüklemeyi yapılandırın. Bunları Azure portalı, Azure CLI veya Azure PowerShell kullanarak yapılandırabilirsiniz.
Genel bakış
Bu nasıl yapılır iki bölüm içerir:
- Cihaz uygulamasından dosya yükleme
- Arka uç uygulamasında dosya karşıya yükleme bildirimi alma
Cihaz uygulamasından dosya yükleme
Bu bölümde, .NET için Azure IoT SDK'sında DeviceClient sınıfını kullanarak bir cihazdan IoT hub'ına dosya yükleme işlemi açıklanmaktadır.
Bir cihazdan IoT hub'ına dosya yüklemek için şu yordamı izleyin:
- IoT hub'ına bağlanma
- IoT hub'ından SAS URI'si alma
- Dosyayı Azure depolamaya yükleme
- Dosya karşıya yükleme durumunu IoT hub'ına bildirme
Cihaza bağlanma
Cihaza bağlanmak için CreateFromConnectionString'i çağırın. Cihaz birincil bağlantı dizesi geçirin.
AMQP
varsayılan aktarım protokolüdür.
static string connectionString = "{device primary connection string}";
deviceClient = DeviceClient.CreateFromConnectionString(connectionString);
IoT hub'ından SAS URI'si alma
Dosya yükleme ayrıntılarını almak için GetFileUploadSasUriAsync'i arayın. SAS URI'si bir sonraki adımda bir cihazdan Blob Depolama'ya dosya yüklemek için kullanılır.
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 depolamaya dosya yükleme
Azure depolamaya dosya yüklemek için:
Karşıya dosya yükleme URI'sini geçirerek bir blockBlobClient nesnesi oluşturun.
Sas URI'sini geçirerek Blob Depolama'ya dosya yüklemek için UploadAsync yöntemini kullanın. İsteğe bağlı olarak Blob karşıya yükleme seçenekleri ve iptal belirteci parametreleri ekleyebilirsiniz.
Azure Blob istemcisi, dosyayı Azure Depolama'ya yüklemek için protokol olarak her zaman HTTPS kullanır.
Bu örnekte, BlockBlobClient
Azure Depolama blok Blob istemcisi oluşturmak için SAS URI'sine geçirilir ve dosyayı karşıya yükler:
var blockBlobClient = new BlockBlobClient(uploadUri);
await blockBlobClient.UploadAsync(fileStreamSource, null, null);
Dosya karşıya yükleme durumunu IoT hub'ına bildirme
Cihaz istemcisinin karşıya yüklemeyi tamamlayıp fileUploadCompletionNotification nesnesi geçirerek IoT hub'ına bildirim göndermek için CompleteFileUploadAsync kullanın. IsSuccess
bayrağı, karşıya yüklemenin başarılı olup olmadığını gösterir. Bildirim aldıktan sonra IoT hub'ı karşıya yükleme (SAS URI'sı) ile ilişkili kaynakları serbest bırakır.
Dosya karşıya yükleme bildirimleri etkinleştirilirse, IoT hub dosya karşıya yükleme bildirimi için yapılandırılmış arka uç hizmetlerine bir dosya karşıya yükleme bildirimi iletisi gönderir.
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 dosyası karşıya yükleme örneği
SDK bu dosya karşıya yükleme örneğini içerir.
Arka uç uygulamasında dosya karşıya yükleme bildirimi alma
IoT hub'ından dosya karşıya yükleme bildirim iletileri almak için bir arka uç hizmeti oluşturabilirsiniz.
ServiceClient sınıfı, hizmetlerin dosya yükleme bildirimlerini almak için kullanabileceği yöntemler içerir.
Dosya karşıya yükleme bildirimi almak için:
- IoT hub'ına bağlanmak için CreateFromConnectionString'i çağırın. IoT hub birincil bağlantı dizesi geçirin.
- CancellationToken oluşturun.
- Bildirim alıcısı oluşturmak için GetFileNotificationReceiver öğesini çağırın.
- Dosya karşıya yükleme bildirimini beklemek için ReceiveAsync ile bir döngü kullanın.
Örneğin:
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);
}
Genel bakış
Bu nasıl yapılır iki bölüm içerir:
- Cihaz uygulamasından dosya yükleme
- Arka uç uygulamasında dosya karşıya yükleme bildirimi alma
Cihaz uygulamasından dosya yükleme
Bu bölümde, Java için Azure IoT SDK'sından DeviceClient sınıfını kullanarak bir cihazdan IoT hub'ına dosya yükleme işlemi açıklanmaktadır.
Bir cihazdan IoT hub'ına dosya yüklemek için şu yordamı izleyin:
- Cihaza bağlanma
- IoT hub'ından SAS URI'si alma
- Dosyayı Azure Depolama'ya yükleme
- IoT hub'ına dosya karşıya yükleme durum bildirimi gönderme
Bağlantı protokolü
Dosya yükleme işlemleri her zaman HTTPS kullanır, ancak DeviceClient telemetri, cihaz yöntemi ve cihaz ikizi gibi diğer hizmetler için IotHubClientProtocol tanımlayabilir.
IotHubClientProtocol protocol = IotHubClientProtocol.MQTT;
Cihaza bağlanma
Cihazın birincil bağlantı dizesi kullanarak cihaza bağlanmak için öğesinin DeviceClient
örneğini açın.
String connString = "{IoT hub connection string}";
DeviceClient client = new DeviceClient(connString, protocol);
IoT hub'ından SAS URI'si alma
FileUploadSasUriResponse nesnesi almak için getFileUploadSasUri çağrısı yapın.
FileUploadSasUriResponse
bu yöntemleri ve dönüş değerlerini içerir. Dönüş değerleri dosya yükleme yöntemlerine geçirilebilir.
Metot | Dönüş değeri |
---|---|
getCorrelationId() |
Bağıntı Kimliği |
getContainerName() |
Kapsayıcı adı |
getBlobName() |
Blob adı |
getBlobUri() |
Blob URI'sı |
Örneğin:
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());
Dosyayı Azure Depolama'ya yükleme
BlobClient nesnesini oluşturmak için blob URI uç noktasını BlobClientBuilder.buildclient'a geçirin.
BlobClient blobClient =
new BlobClientBuilder()
.endpoint(sasUriResponse.getBlobUri().toString())
.buildClient();
Dosyayı Blob Depolama'ya yüklemek için uploadFromFile öğesini çağırın.
String fullFileName = "Path of the file to upload";
blobClient.uploadFromFile(fullFileName);
IoT hub'ına dosya karşıya yükleme durum bildirimi gönderme
Bir dosya karşıya yükleme girişiminin ardından IoT hub'ına karşıya yükleme durumu bildirimi gönderin.
FileUploadCompletionNotification nesnesi oluşturun. ve isSuccess
dosyasını karşıya correlationId
yükleme başarı durumunu geçirin. Dosya yükleme başarılı olduğunda, false
başarılı olmadığında bir isSuccess
true
değer geçirin.
FileUploadCompletionNotification
dosya karşıya yükleme başarısız olsa bile çağrılmalıdır. IoT hub'ının belirli bir zamanda etkin olmasına izin verilen sabit sayıda SAS URI'sine sahiptir. Karşıya dosya yükleme işlemini tamamladıktan sonra, diğer SAS URI'sinin oluşturulabilmesi için SAS URI'nizi boşaltmanız gerekir. Sas URI'leri bu API aracılığıyla serbest değilse, SAS URI'lerinin bir IoT hub'ına göre ne kadar süreyle yaşayacak şekilde yapılandırıldığına bağlı olarak sonunda kendini serbesttir.
Bu örnek başarılı bir durum geçirir.
FileUploadCompletionNotification completionNotification = new FileUploadCompletionNotification(sasUriResponse.getCorrelationId(), true);
client.completeFileUpload(completionNotification);
İstemciyi kapatma
Kaynakları serbest.client
client.closeNow();
Arka uç uygulamasında dosya karşıya yükleme bildirimi alma
Karşıya dosya yükleme bildirimleri almak için bir arka uç uygulaması oluşturabilirsiniz.
Karşıya dosya yükleme bildirim uygulaması oluşturmak için:
- IoT hub hizmeti istemcisine bağlanma
- Karşıya dosya yükleme bildirimini denetleme
ServiceClient sınıfı, hizmetlerin dosya yükleme bildirimlerini almak için kullanabileceği yöntemler içerir.
IoT hub hizmeti istemcisine bağlanma
Bir IotHubServiceClientProtocol
nesne oluşturun. Bağlantı, AMQPS
protokolü kullanır.
IoT hub'ına bağlanmak için arayın createFromConnectionString
. IoT hub birincil bağlantı dizesi geçirin.
private static final String connectionString = "{IoT hub primary connection string}";
private static final IotHubServiceClientProtocol protocol = IotHubServiceClientProtocol.AMQPS;
ServiceClient sc = ServiceClient.createFromConnectionString(connectionString, protocol);
Dosya karşıya yükleme durumunu denetleme
Dosya karşıya yükleme durumunu denetlemek için:
- GetFileUploadNotificationReceiver nesnesi oluşturun.
- IoT hub'ına bağlanmak için open kullanın.
- Dosya karşıya yükleme durumunu denetlemek için alma çağrısı. Bu yöntem bir fileUploadNotification nesnesi döndürür. Karşıya yükleme bildirimi alınırsa fileUploadNotification yöntemlerini kullanarak karşıya yükleme durumu alanlarını görüntüleyebilirsiniz.
Örneğin:
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 dosyası karşıya yükleme örnekleri
İki Java dosyası karşıya yükleme örneği vardır.
Paketleri yükleme
İlgili kodu çağırmadan önce azure-iot-device kitaplığı yüklenmelidir.
pip install azure-iot-device
Azure.storage.blob paketi, dosya yükleme işlemini gerçekleştirmek için kullanılır.
pip install azure.storage.blob
Bir cihaz uygulamasından dosya yükleme
Bu bölümde, Python için Azure IoT SDK'sından IoTHubDeviceClient sınıfını kullanarak bir cihazdan IoT hub'ına dosya yükleme işlemi açıklanmaktadır.
Bir cihazdan IoT hub'ına dosya yüklemek için şu yordamı izleyin:
- Cihaza bağlanma
- Blob Depolama bilgilerini alma
- Dosyayı Blob Depolama'ya yükleme
- IoT hub'ına karşıya yükleme durumunu bildirme
Kitaplıkları içeri aktarma
import os
from azure.iot.device import IoTHubDeviceClient
from azure.core.exceptions import AzureError
from azure.storage.blob import BlobClient
Cihaza bağlanma
Cihaza bağlanmak için:
Cihaz birincil bağlantı dizesi eklemek için create_from_connection_string'ı çağırın.
Örneğin:
# 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 Depolama bilgilerini alma
IoT hub'ından bağlantılı Bir Azure Depolama hesabı hakkında bilgi almak için get_storage_info_for_blob'ı arayın. Bu bilgiler konak adını, kapsayıcı adını, blob adını ve SAS belirtecini içerir. yöntemi de get_storage_info_for_blob
yönteminde notify_blob_upload_status
kullanılan bir correlation_id
döndürür. correlation_id
IoT Hub'ın üzerinde çalıştığınız Blobu işaretleme yöntemidir.
# 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 Depolama'ya dosya yükleme
Blob Depolama'ya dosya yüklemek için:
- blob URL'sinden BlobClient nesnesi oluşturmak için from_blob_url kullanın.
- Dosyayı Blob Depolama'ya yüklemek için upload_blob'yi çağırın.
Bu örnek, BlobClient'ı başlatmak için kullandığı URL'yi oluşturmak için yapısını ayrıştırmaktadır.blob_info
Ardından dosyayı Blob Depolama'ya yüklemek için çağrısında upload_blob
bulunur.
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'ına karşıya yükleme durumunu bildirme
Blob Depolama işleminin durumunu IoT hub'ına bildirmek için notify_blob_upload_status kullanın. correlation_id
yöntemi tarafından elde edilen geçirilirget_storage_info_for_blob
. , correlation_id
IoT hub'ı tarafından dosya yükleme görevinin durumuyla ilgili bir bildirim dinleyen herhangi bir hizmeti bilgilendirmek için kullanılır.
Bu örnek IoT hub'ına başarılı bir dosya yükleme işlemi olduğunu bildirir:
device_client.notify_blob_upload_status(storage_info["correlationId"], True, 200, "OK: {}".format(PATH_TO_FILE)
Cihaz istemcisini kapatma
İstemciyi kapatın. Bu yöntem çağrıldıktan sonra, daha fazla istemci çağrısı girişimi bir ClientError'ın tetiklenmesiyle sonuçlanır.
device_client.shutdown()
SDK dosyası karşıya yükleme örnekleri
SDK iki dosya karşıya yükleme örneği içerir:
Genel bakış
Bu nasıl yapılır iki bölüm içerir:
- Cihaz uygulamasından dosya yükleme
- Arka uç uygulamasında dosya karşıya yükleme bildirimi alma
Cihaz uygulamasından dosya yükleme
Bu bölümde, Node.js için Azure IoT SDK'sında azure-iot-device paketini kullanarak bir cihazdan IoT hub'ına dosya yükleme işlemi açıklanmaktadır.
SDK paketlerini yükleme
Geliştirme makinenize azure-iot-device SDK'sını, azure-iot-device-mqtt'yi ve @azure/storage-blob paketlerini yüklemek için şu komutu çalıştırın:
npm install azure-iot-device azure-iot-device-mqtt @azure/storage-blob --save
azure-iot-device paketi, IoT cihazlarıyla arabirim oluşturan nesneler içerir.
Bir cihazdan IoT hub'ına dosya yüklemek için şu yordamı izleyin:
- Blob paylaşılan erişim imzalarını alma
- Dosyayı Azure Depolama'ya yükleme
- IoT hub'ına dosya karşıya yükleme durum bildirimi gönderme
Modül oluşturma
Yüklü paketleri kullanarak İstemci, Protokol, hatalar ve yol modülleri oluşturun.
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'ından SAS URI'si alma
Bağlı depolama hesabı SAS belirtecini IoT hub'ından almak için getBlobSharedAccessSignature komutunu kullanın. Önkoşullarda açıklandığı gibi, IoT hub'ı Blob Depolama'ya bağlanır.
Örneğin:
// 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');
}
Dosyayı IoT hub'ına yükleme
Bir cihazdan IoT hub'ına dosya yüklemek için:
- Akış işlem hattı oluşturma
- Blob URL'sini oluşturma
- Blob Depolama'ya dosya yüklemek için BlockBlobClient oluşturma
- Dosyayı Blob Depolama'ya yüklemek için uploadFile çağrısı
- IoT hub'ına karşıya yüklemenin başarılı veya başarısız olduğunu bildirmek için notifyBlobUploadStatus'u çağırın
Örneğin:
// 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);
Arka uç uygulamasında dosya karşıya yükleme bildirimi alma
Cihaz dosyası karşıya yükleme bildirimleri için IoT hub hizmeti istemcisini denetlemek için bir arka uç uygulaması oluşturabilirsiniz.
Karşıya dosya yükleme bildirim uygulaması oluşturmak için:
- IoT hub hizmeti istemcisine bağlanma
- Karşıya dosya yükleme bildirimini denetleme
IoT hub hizmeti istemcisine bağlanma
ServiceClient sınıfı, hizmetlerin dosya yükleme bildirimlerini almak için kullanabileceği yöntemler içerir.
fromConnectionString kullanarak IoT hub'ına bağlanın. IoT hub birincil bağlantı dizesi geçirin.
const Client = require('azure-iothub').Client;
const connectionString = "{IoT hub primary connection string}";
const serviceClient = Client.fromConnectionString(connectionString);
//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');
Karşıya dosya yükleme bildirimini denetleme
Dosya karşıya yükleme bildirimlerini denetlemek için:
- getFileNotificationReceiver çağrısı. Bildirim iletileri alındığında çağrılan bir dosya karşıya yükleme geri çağırma yönteminin adını belirtin.
- Geri çağırma yönteminde dosya karşıya yükleme bildirimlerini işleme.
Bu örnek bir receiveFileUploadNotification
bildirim geri çağırma alıcısı ayarlar. Alıcı, dosya karşıya yükleme durum bilgilerini yorumlar ve konsola bir durum iletisi yazdırır.
//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 dosyası karşıya yükleme örneği
SDK, bloba bir karşıya yükleme gelişmiş örneği içerir.