Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
37 lines (24 sloc) 1.83 KB

S3 Uploader Asp.Net MVC Example

MVC port of Nico Ritsche's ( multiple file S3 uploader Rails example, which can be found at

And based on the great jQuery File Upload plugin:

  • Upload multiple files straight to S3 from within the browser without hitting the server first

  • Gets around S3's lacking cross domain access header support by storing the upload form on s3, embedded in an iframe.

  • Upload progress is displayed on the host server by utilizing postMessage browser communication.

  • After a file is uploaded a post ajax request is made to create a resource for the uploaded file in the db.

Getting Started

  1. Build S3Uploader/S3Uploader.sln (make sure nuget package restore pulls all the dependencies down that you need)

  2. Fill in the AWS S3 config variables within S3Uploader/S3PrepTask/App.config and S3Uploader/S3Uploader/Web.config:

  3. Set your server host in S3Uploader/S3Uploader/Scripts/s3_uploader/s3_uploader.js:

    var host = '';
  4. Deploy uploader javascript and form to s3 (run in command prompt)

    Open command prompt and run S3Uploader/S3PrepTask/bin/{debug or release}/S3PrepTask.exe
  5. Start web app and Upload All the Things!!! :)


  • The path for the uploaded files defaults to “uploads/:uuid” (see UploadsController). Currently the path must have the :uuid placeholder in it. It is replaced with a random string for each uploaded file, to obfuscate the file locations and to prevent overwriting existing files.

  • To compile coffeescript into javascript within visual studio, install the recommended Mindscape Web Workbench extension: