Тогда я не понял задачу правильно, сори)
Возможно =) Попробую объяснить более просто:
Есть массив с инфой о файлах, она может меняться, файлы могут помечаться на загрузку в любой момент.
Как только файл помечается запускается подписка по загрузке (это есть), если таковая не активна еще.
В этой подписке берется 1й помеченный файл и загружается на сервер, в это время тоже могут помечаться файлы, но подписка не создается.
Как только файл загружен, то он проверяет, есть ли еще файлы на загрузку, и если есть, то продолжает работать, а если нет - закрывает подписку.
В общих чертах вот так.