Hello @Najam ul Saqib ,
welcome to this moderated Azure community forum.
Sending blobs to the cloud via an IoT Hub is a bit of a challenge.
You will be charged in 4KB chunks with a maximum message size up to 256KB so 64 chunks.
Both options is feasible. You need access to a blob storage container which is probably not publicly available. So, sending a request from the edge to an Azure function behind the IoT Hub that generates a SAS token (limited in time) is a valid approach. Make sure you mark these technical flow messages with eg. application properties so you can route them on the IoT Hub to a separate flow, not mixed with regular messages.
An Event hub can only receive messages with a size up to 1 MB so this will not work in your case.
Still, did you check out this blob storage module from Microsoft?
It offers a smart way of copying files from the local disk to the cloud via Azure IoT Edge.
The only drawback is that the secrets of the storage is kept in the device twin. This is not directly readable on the device but some administrators are less knowledgeable with this approach of sending properties to the edge.
If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.