Uploading data to Amazon S3 from Node.js
What can be simpler than uploading file to the server and saving it to hard drive, right? Open read stream, read bytes, open write stream, write bytes, done. Now let's explore the same question but from a high-load high-availability service perspective. You're designing new Instagram, where will you store the photos?
Remember, at a bare minimum you need to make sure that a failure to a single node in a data center will not interrupt your service (you can't allow to lose those precious cat pictures that your users are uploading).