This may be a fairly elementary question, but I was wondering what the best/cheapest way to do storage for user uploaded images is without relying on another platform like flickr or facebook. I'm assuming its S3 but would love to hear if there are other solutions out there.
I moved over from S3 primarily b/c I was movingn from EC3 to Rackspace Cloud Servers. The biggest headache I have now is you can't serve files over SSL on Rackspace Cloud and they don't support CNAME aliasing. But I hear those are both coming.
Simplicity is something that comes to mind. Rackspace Cloud has relatively few products and simple pricing compared to Amazon's many, many cloud products and confusing interfaces/billing.
S3 + CloudFront (CDN). S3 is super easy to deal with programmatically and if you ever need to do batch operations from a GUI, there are "FTP" clients that can connect to S3. CloudFront is a nice bump up in performance for minimal increase in cost (if you're trying to do as low cost as possible reduced redundancy S3 is the cheapest option I've seen).
App Engine's blobstore. I'm not sure about cost vis a vis S3, but I'm sure that info is around. It's very easy to use. I recently set up AE for file sharing (upload from app, user gets link to share) and it took me about 30 minutes of coding time.
Similar product to S3.