Curl offers --speed-limit and --speed-time flags to abandon transfers dropping below 1000 bytes per second for 15 seconds, letting you avoid setting fixed timeouts unnecessarily high for variable file sizes.
Everything curl: Command line transfers: Transfer controls
> Transcript: generated from the open-source book by Daniel Stenberg.
> Source: https://github.com/bagder/everything-curl