As a result of our problems with direct file downloads via HTTP GET with the BG96 (see here) we now use the AT+QHTTPREADFILE command to temporarily store the file in the UFS filesystem before using AT+QFREAD to get it onto out ESP32.
Unfortunately the file is around 600KB in size and the download times out after 60 seconds. This behaviour is not described in the documentation. Unlike the write command, the file read command gives no options to change the timeout value. We have tested sending something like AT+QFREAD=0,666560,300 but get an ERROR back.
I may have to split the file download into multiple read sessions with an incremented file pointer. But this is a complicated workaround if timeout extension is possible.