The speed for download will depend on a number of factors.
Storage source is one. Given the sources you mentioned, I would expect Google Drive to provide the most performance, in general. You may end up being throttled after a period of sustained transfer. You may also have your API request throttled if they exceed a certain rate (this is especially true if you are downloading lots of smaller files).
ISPs can start to impose throttling after sustained bandwidth use, as well.
Speed will also heavily depend on the size and number of files. If you have lots of very large files (GB size), you will get better speeds than if you have lots of smaller files.
Here are some general guidelines:
“maxConcurrentDownloads” - This regulates the total number of downloads you can have going at one time, per job. If you right-click->sync a folder you will likely have 1 job for that folder.
“maxConcurrentJobs” - This is the number of jobs you can have running at once. If you are performing several right-click->syncs at the same time or are syncing against multiple source at once, these can trigger multiple jobs
“maxConcurrentUploads” - This is like the maxConcurrentDownloads setting, except for uploads. This won’t be relevant if you are only downloading
“maxTransferMBytes” - This is a maximum size for concurrent files being transferred. If you have lots of GB size files to transfer, you will want to bump this up pretty high to allow for concurrency.
“InitialUploadBatchSize” - The number of files to initially allow for download.
Additional documentation here
Give these settings a try: