Allright, I'll bite. First, I'll get the cost argument out of the way, then I'll cover each type with their specifics.
Costs
- Amazon S3: USD 0.03 per GB (up to 1TB, where the price drops as you store more and more data)
- Rackspace: USD 0.12 per GB (up to 1TB, where the price drops)
- Google Cloud Storage: USD 0.026 per GB (No price reduction for large amounts)
In conclusion - pricing will not be a deciding factor, as the difference, while having a rather noticeable amplitutde, only matter when storing such an absurd amount of data, that the price is the least of your problems.
S3 Specifics
- Superb integration with AWS. If you're hosting there, then your choice has been made.
- CDN - Amazon Cloud Front is super-easy to set up and is a breeze to use.
- Different types of storages available.
- Regular
- Reduced Redundancy Storage - cheaper, however Amazon guarantees "only" 99.99% durability of data
- Glacier - super-cheap storage for archiving. Super long data recovery, though. I'm talking 3 to 5 hours. Also, as Matt Stein pointed out, in some cases, the data retrieval could get super-expensive. (more info (http://aws.amazon.com/glacier/), expensive retrieval case (https://news.ycombinator.com/item?id=4412886))
- Supports object versioning (more info (http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html))
- Cache headers - you can set up cache duration per Assets source for files uploaded to the source via Assets
Rackspace Specifics
- CDN built right in - no set-up necessary.
- CDN comes at a cost - you can purge only up to 25 files from the CDN per day, so be careful with frequent file changes. (blog post (http://www.rackspace.com/blog/cloud-files-cdn-gets-edge-purge/))
- Supports object versioning (blog post (http://www.rackspace.com/blog/rackspace-cloud-files-how-to-use-object-versioning/))
Google Cloud Storage Specifics
- Cheapest of them all.
- Offers Durable Reduced Availability storage. Cheaper, but stores data on further servers, so the data recovery time is slightly longer.
- Cache headers - you can set up cache duration per Assets source for files uploaded to the source via Assets
- According to google, CDN is built in at no extra cost. (Google groups post (https://groups.google.com/forum/#!msg/gs-discussion/z7Kee2CIdsk/gEtlHK7L_JgJ)))
- Supports object versioning (more info (https://developers.google.com/storage/docs/object-versioning))
Overview
I am biased, I'll admit that, but I've had nothing but joy working with Amazon S3, a lot of frustration working with Rackspace and mixed feelings when it comes to Google. For Google it's mainly of their unbelievably clunky UI, but that might be just me.