А в чем проблема?
В БД хранишь нужны результирующий путь. По факту аплоада делаешь таск на распаковку архива. Этот поцесс может оказаться не быстрым и закончиться ошибкой. Таск запускается, а его статус фронтенд запрашивает регулярно через АПИ, или слушает через перманентное подключение по веб-сокету - как уж реализуете. Важно, что распаковка это таск и у него есть статус и прогресс. По факту окончания загрузки помечаете в записи БД где путь, что путь актуален.
Можно не записывать путь пока не закончится распаковка, тогда путь должен записать таск по факту своего успешного завершения.