https://gallenzhang.com/posts/building-a-free-image-hosting-service-with-cloudflare-r2/