Well that's super fancy, but also seems super complicated.
You could also just use client-side multi-part S3 uploads [1] and skip ... this process entirely. Seems like the Service oriented architecture is hurting more than helping here.
1. e.g. https://github.com/TTLabs/EvaporateJS