I'm an experienced web developer who's getting back into the game after a break. I'm working on my first project in years and it's shaping up to be something great. A key part of the site will allow users to upload small files like JPGs and PDFs, but I'd prefer not to store these on my hosting server for various reasons. The solution needs to be scalable, as I anticipate the site could grow quite a bit.
What's the best approach these days? I'd like something with simple integration, preferably using PHP, and low cost since I don't plan on handling a huge volume of uploads initially. I've heard of options like Cloudflare R2 and Digital Ocean, but I could use some guidance here. Any recommendations?
5 Answers
Cloudflare R2 is a solid choice! It’s cheaper than AWS and you can start with their free plan that gives you 10 GB.
AWS S3 buckets are a classic option. They’re reliable and have a lot of support and documentation available.
The best approach right now is to use an S3-compatible object storage for uploads directly from the browser using presigned URLs. I’d suggest Cloudflare R2 if you plan to use Cloudflare since egress to their CDN is free. AWS S3 is also reliable but can be pricey. DigitalOcean Spaces is super simple with PHP and comes with a built-in CDN, which helps with known costs. You’ll generate a presigned URL on the server side for the client to upload the file, keeping things smooth and lightweight. Plus, it scales nicely, so no worries about running out of space!
For a managed service, UploadCare has been great for me! Their API documentation is really thorough, but keep in mind it’s a paid service. If you want something free, you could try Uppy.js which works with S3 buckets. It’s a bit more complex but manageable.
Bunny.net is definitely worth checking out. It’s user-friendly and might be just what you need!

I agree! R2 is really reliable and using their API is super straightforward, similar to S3. You can save on bandwidth costs too.