Azure IoT - Subir archivos

· Características

Azure IoT permite enviar datos usando varios protocolos como MQTT o AMQP, pero en algunos casos el tamaño del mensaje es demasiado grande y requiere subir archivos a los servidores de Azure. Para resolverlo, IoT hub facilita la subida de archivos desde dispositivos conectados proporcionando URIs Shared Access Signature (SAS) por cada subida para un blob container y una cuenta de almacenamiento Azure preconfigurados con el hub. 

Desde sgcWebSockets 2023.8.0, puedes subir archivos usando el cliente Azure IoT. Tanto certificados como SAS son métodos de autenticación soportados.

Puedes leer más sobre la subida de archivos en el siguiente enlace:

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

Subir archivo usando certificados

Primero configura los certificados en tu cuenta Azure y luego establece las rutas del certificado y del archivo de clave en el componente Azure IoT Client. Llama al método UploadFile para subir un archivo desde una ruta.

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; 

Subir archivo usando SAS

Primero configura la Secret Key en el componente Azure IoT Client. Llama al método UploadFile para subir un archivo desde una ruta.

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; 

Demo sgcWebSockets de clientes IoT Amazon y Azure

Demo compilada para Windows que muestra las principales características de las APIs Amazon y Azure IoT https://www.esegece.com/download/protocols/sgcIOT.zip