Azure IoT ファイルアップロード

· 機能

Azure IoT は MQTT や AMQP などの複数のプロトコルを使用してデータを送信できますが、メッセージのサイズが大きすぎる場合は Azure サーバーへのファイルアップロードが必要になります。この問題の解決策として、IoT Hub はハブに事前設定された BLOB コンテナーおよび Azure ストレージアカウントに対して、アップロードごとに Shared Access Signature(SAS)URI を提供することで、接続デバイスからのファイルアップロードを容易にします。

sgcWebSockets 2023.8.0 より、Azure IoT クライアントを使用してファイルをアップロードできます。証明書SAS の両方の認証方式をサポートしています。

ファイルアップロードの詳細については、以下のリンクをご参照ください:

https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-file-upload

証明書を使用したファイルアップロード

まず Azure アカウントで証明書を設定し、次に Azure IoT クライアントコンポーネントの証明書ファイルとキーファイルのパスを設定します。UploadFile メソッドを呼び出してファイルパスからファイルをアップロードします。

oClient := TsgcIoTAzure_MQTT_Client.Create(nil);
Try
  oClient.Certificate.CertFile := 'cert.pem';
  oClient.Certificate.KeyFile := 'key.pem';
  oClient.Certificate.Enabled := True;
  oDialog := TOpenDialog.Create(nil);
  Try
    if oDialog.Execute then
      oClient.UploadFile(oDialog.FileName);
  Finally
    oDialog.Free;
  End;
Finally
  FreeAndNil(oClient);
End; 

SAS を使用したファイルアップロード

まず Azure IoT クライアントコンポーネントにシークレットキーを設定します。UploadFile メソッドを呼び出してファイルパスからファイルをアップロードします。

oClient := TsgcIoTAzure_MQTT_Client.Create(nil);
Try
  oClient.SAS.SecretKey := 'your-secret-key';
  oClient.SAS.KeyName := 'key-name';
  oClient.SAS.Enabled := True;
  oDialog := TOpenDialog.Create(nil);
  Try
    if oDialog.Execute then
      oClient.UploadFile(oDialog.FileName);
  Finally
    oDialog.Free;
  End;
Finally
  FreeAndNil(oClient);
End; 

sgcWebSockets IoT Amazon and Azure Client Demo

Amazon および Azure IoT API の主要機能を示す Windows 向けコンパイル済みデモ https://www.esegece.com/download/protocols/sgcIOT.zip