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.
We cover why this is not done in the article, namely location transparency (our files aren't always in S3), and partial-failures. A simple client-side uploader like this doesn't handle cases like the upload failing part way through. For example, the user closing the browser or losing connectivity.
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