Sample project that implements image upload and resizing using node.js, and AWS s3 on Heroku via ephemeral file storage.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
views Fix changes. Mar 5, 2014
Procfile Added links using correct markdown Oct 22, 2012
package.json Add an error catch to the listPageOfKeys call Oct 22, 2012
web.js Fix changes. Mar 5, 2014

This is a demo application that shows how to manage file uploads and AWS using Node.js on Heroku. This sample app makes use of the Heroku 'ephemeral file system'.



  • AWS Account and defined bucket.
  • Heroku Account
  • Node installed locally.


To test this application you need to define the following variables in either your local node workspace (.bash_profile) or as heroku configuration variables. I usually create a .settings file in my local workspace and add .setting to my repos .gitignore.

For local development (.settings or ~/.bash_profile)


For Heroku Config SDK

heroku config:add AWS_ACCESS_KEY_ID=XXXXX
heroku config:add AWS_ACCESS_ACCESS_KEY=XXXX
heroku config:add AWS_S3_BUCKET=XXXXXXXX
heroku config:add BLITLINE_API_KEY=XXXXX Setup

The blitline image resize API is an optional element in this demo. If you do not want to setup an account, then leave the BLITLINE_API_KEY variable defined. The code code will only call the resizing code when it is defined.

Remember to allow Blitline to save resized images back to your AWS bucket, you need to define the access rules in your AWS console to give them specific write access. Get the API specific settings from