Key-Value or SQL storage in this regard is very loosely related to your real problem. These are just different approaches to how your data is actually stored in the backend. Using one way or another does not affect your business.
Regarding the actual issue, I find it too general for SO. Multistage forms, as a rule, are very different from each other. There is no βone good wayβ to do this.
The reason you are not getting answers to this is probably because there is no real question. What you have to do is try to do the actual implementation and ask more specific questions when hitting the wall somewhere.
In the end, I believe that multi-stage forms are not really the best idea when it comes to usability. Of course, there are good reasons to use them in some cases, but you should think twice if there is a way to avoid this in your case.
One of the problems I once encountered with forms and downloads was validation (this does not apply to Multi / Single step specifically). Typically, when verification fails, the user will need to re-upload the file. Fortunately, this is not a problem in your case, as Carrierwave handles this automatically.
source share