Here's what you do:
1. Buy two servers equipped with a large amount of storage. There are many providers[1][2] that offer this. (You could technically do it with one, but two allows you to have high availability and prevent data loss in case of accidents, imagine `rm -rf *`.)
2. Use Minio to set up erasure-coded storage on one of the servers, and replicate objects[3] to the other server.
4. Use Cloudflare (because of their open source sponsorship program[4]) to serve the objects from the primary server, and when performing maintenance tasks, fall back to the secondary.
You could also serve objects directly out of the primary/secondary, but using Cloudflare takes care of low-effort DDoS attacks by hiding the origin, and provides some caching which helps prevent hitting the egress limits of the server provider.
[1] https://www.netcup.eu/vserver/vstorage.php
[2] https://www.hetzner.com/dedicated-rootserver
[3] https://blog.min.io/active-active-replication/
[4] https://blog.cloudflare.com/cloudflare-new-oss-sponsorships-...