Не используйте здесь поток памяти. Это заставляет весь файл в непрерывный блок памяти, который, как вы обнаружили, исчерпывает память в 32-битном процессе.
Вместо этого напишите загруженные данные непосредственно в файл. Вы можете удалить промежуточный поток памяти и записать непосредственно в поток файлов.
Конечно, все это предполагает, что getDownload
возвращает поток, который выполняет загрузку по мере ее чтения. Если он getDownload
считывает весь файл в поток памяти, то он испытывает ту же проблему, что и код в этом вопросе.