Требование
Мобильное приложение загружает файл на сервер. Затем ограниченное число других пользователей мобильного приложения скачивают тот же файл. Учитывая сетевые ограничения мобильной среды (разрозненные соединения / ограниченная и изменяющаяся пропускная способность), я бы хотел, чтобы загрузка и последующие загрузки были максимально надежными, без повторения работы, если передача файла не удалась. Размер файлов обычно составляет от 1 до 5 МБ. Мобильное решение должно соответствовать React Native. Решение на стороне сервера может быть чем угодно. Количество передаваемых файлов может быть огромным, если приложение взлетает, равно минимальным, если оно не работает: -)
Исследованы потенциальные решения
Bittorrent - наличие трекера на сервере, мобильный клиент публикует на сервере торрент, который передается чем-то вроде rtorrent, а затем загружается. Сервер сообщает приложениям на других устройствах информацию о торренте и запрашивает его с сервера. Это реалистично? Если так, мне понадобится помощь в прояснении деталей. Могут быть вариации на тему - например, загрузка файла не bittorrent, но загрузка файла.
Minio - это звучит как отличное решение, но если коротко взглянуть на код .NET, то он выполняет только http-загрузку из нескольких частей для файлов размером более 5 МБ.
Любая помощь с благодарностью.