Azure IoT erlaubt das Senden von Daten über mehrere Protokolle wie MQTT oder AMQP; in manchen Fällen ist die Nachrichtengröße aber zu groß, und es ist nötig, Dateien auf Azure-Server hochzuladen. Um dafür eine Lösung zu bieten, ermöglicht IoT Hub Datei-Uploads von verbundenen Geräten, indem er ihnen pro Upload eine Shared-Access-Signature(SAS)-URI für einen Blob-Container und ein Azure-Storage-Konto bereitstellt, die zuvor mit dem Hub konfiguriert wurden.
Ab sgcWebSockets 2023.8.0 kannst du mit dem Azure-IoT-Client Dateien hochladen. Zertifikate und SAS sind beide unterstützte Authentifizierungsmethoden.
Mehr zum Datei-Upload findest du unter folgendem Link:
https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-file-upload
Datei mit Zertifikaten hochladen
Konfiguriere zunächst die Zertifikate in deinem Azure-Konto und trage dann die Pfade von Zertifikats- und Schlüsseldatei in der Azure-IoT-Client-Komponente ein. Rufe die Methode UploadFile auf, um eine Datei aus einem Dateipfad hochzuladen.
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;
Datei mit SAS hochladen
Konfiguriere zunächst den Secret Key in der Azure-IoT-Client-Komponente. Rufe die Methode UploadFile auf, um eine Datei aus einem Dateipfad hochzuladen.
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;
