by willwebberley

willwebberley / NodeDirectUploader

Companion code for the direct-to-S3 uploads Node.js article on Heroku's Dev Center

216 Stars 97 Forks Last release: Not found 26 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:



The files in this repository are, unless stated otherwise, released under the Apache License. You are free to redistribute this code with or without modification. The full license text is available here.

Direct-to-S3 uploads in a Node.js application running on Heroku

Simple example demonstrating how to accomplish a direct upload to Amazon's S3 in a Node.js web application.

This example uses the express web framework to facilitate request-handling. However, the process of signing the S3 PUT request would be identical in most Node apps.

This code is mostly ready to be run as cloned, but a function will need to be properly defined to handle the storing of the POSTed information. The current example simply demonstrates the upload to S3.

Dependencies and Installation

Ensure Node is installed. This can be done through your package manager or from their website.

Clone this repository:

$ git clone

Change directory into the application and install the application's dependencies:

$ cd NodeDirectUploader
$ yarn

If you prefer

, then run
npm install

Running the application

Deploying the application

See the article Deploying with Git for more detailed information on deploying to Heroku.

  • Download and install the Heroku CLI
  • Commit your application to a local Git repository (e.g.
    git init
    git add .
    git commit -m "version 1 commit"
    , etc.)
  • Create the application on Heroku by adding a Git remote (
    $ heroku create
  • Push your code to the new Heroku repo (
    $ git push heroku master

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.