Resumable Upload
Split the files into block architects so that we upload and finish each of the blocks.
Next time when the user go and upload the files, we can continue to process which blocks needed to be upload.
So for example the files architecture can be like this: