node package manager


S3 client upload library


S3 client upload library

$ component install component/s3
var Upload = require('s3');
var drop = require('drop-anywhere');
drop(function(err, drop){
  if ('upload' != drop.type) return;
  var file = drop.item.file;
  console.log('upload %s',;
  var uid = Math.random() * 1e10 | 0;
  var upload = Upload(file, { name: uid })
  var prog = document.querySelector('#progress');
  upload.on('progress', function(e){
    prog.textContent = (e.percent | 0) + '%';
    if (err) throw err;
    console.log('upload complete %s',;

By default an upload performs a GET request to the "/sign" end-point, which responds with a url signed by your aws secret.

  • name remote filename or
  • type content-type or file.type
  • route signature GET route [/sign]


  • error an error occurred
  • abort upload was aborted
  • progress upload in progress (e.percent etc)
  • end upload is complete

First populate ./config.json with your credentials:

  "key": "asdfasdfasdfasdf",
  "secret": "asdfasdfasdfasdfasdfadsfasfdsfdasdf+fHgg",
  "bucket": ""

Boot the test server:

$ node test