I believe that the simplest solution is AWS and KeyCDN, following the guidelines at Using Object Storage for Uploads (S3 & Clones). If your users are not in South America, KeyCDN is pretty affordable and easy to configure.
A potentially less expensive solution might be How to Setup BackBlaze S3 with BunnyCDN. I have been pleased with backblaze in my initial testing for backups, but haven’t yet tried it for uploads.