1 Answer
- Newest
- Most votes
- Most comments
0
Hi. A pre-signed URL is likely a very good option. I would say the the most common approaches for an IoT device are:
- Pre-signed URL.
- If your device is using AWS IoT Core, have your device use the AWS IoT Core credential provider to get temporary IAM credentials allowing it to access the bucket object.
- MQTT file streams if you would prefer to transfer the file using MQTT instead of HTTP.
Some relevant demos: https://github.com/aws/aws-iot-device-sdk-embedded-C/tree/main/demos/http
Options 1 and 3 are commonly used with AWS IoT Jobs and AWS IoT OTA Updates (aka "FreeRTOS OTA"). Jobs with presigned URLs: https://docs.aws.amazon.com/iot/latest/developerguide/create-manage-jobs.html#create-manage-jobs-presigned-URLs
More information:
Relevant content
- asked 3 months ago
- Accepted Answerasked 12 days ago
- asked 3 months ago
- AWS OFFICIALUpdated 9 months ago
- AWS OFFICIALUpdated 3 years ago
Hey Greg! Im not using AWS IOT to register my devices as things, is mandatory to implement everything with AWS IOT to be able to do this, with this we will have to change a lot our actual services code to make it work.
I could create an intermediate service with an endpoint, make the device do a request here to get the s3 pre signed URL and then with that URL do the update inside my firmware? Or should the device send a signal to an mqtt topic and then make that service to send the updated firmware to the given device usng MQTT file streams?
Thanks!
You don't need to use AWS IoT to use pre-signed URLs. You just need to create the URL and send it to your device, using whatever protocol your device uses.
I see, thanks!