views:

101

answers:

2

Simple question, doesn't seem to have been directly asked yet.

What are the benefits to storing files (images/videos/documents/etc) on Amazon S3-and-related vs. on the File System your app is deployed on?

It seems that the general consensus is to store files on the File System over the Database (here and here), but where does the Cloud fit in?

Should all files just be stored on the File System? I really would like to use the Cloud, so there's more of an API and I could get the docs from multiple apps, but I'm unsure about the performance tradeoff.

+2  A: 

The pros and cons of storing files in "the cloud" IMHO:

The pros:

  1. Availablity: you have your data available anywhere you go (if you have internet access of course)
  2. You can store a relatively large amount of data without having to worry about the storage capabilities of the client computer.
  3. It is easier to share data with other people / to do workgroup.

The cons:

  1. Security: you need to trust that the storage provider will treat your data confidentially and it has strong enough security measures in place to prevent unauthorized access.
  2. Unavailability: you can't continue working if for some reason you temporarily lose connectivity (this can be anyway partially solved by using data caches).
  3. Performance, as you have mentioned, especially with very large amounts of data.

So, bearing this in mind, you decide what's best for your particular project.

Konamiman
+1  A: 

Konamiman's answer is a good one, I just wanted to add one thing to the pros: some cloud providers have Content Delivery Network integration, like Rackspace with Limelight, which can give end users very fast content delivery.

phoebus