in the past I’ve used scripts to upload files to s3 and stuck CloudFront in front of it for geo local caching.
but that’s just using amazon’s infra. if you really want to host your own cdn youd need to geographically distribute servers you own.
if you just want control of files, a vps with a domain name in front will get you pretty far.