Uploading to S3 is easy until it isn't. It works pretty nicely for one-offs but when you have to blast a few hundred gigs into it or large files from a bit of software you wrote it's a royal pain in the butt. The phrase "multi-part upload" makes me cry inside.
It looks like it works but it's not reliable so your reliability concerns then get externalised into your application which multiplies complexity terribly.