Which should one use for a file upload? It should consider the following usecases<p>1. using s3.
2. not reinventing the wheel, libraries that has already addressed this issue.
3. Handle large files as huge as 2gb.
4. Optional: to show progress of upload
5. Async stream upload.