s3-component

S3 client upload library

s3

S3 client upload library

$ component install component/s3
var Upload = require('s3');
var drop = require('drop-anywhere');
 
drop(function(errdrop){
  if ('upload' != drop.type) return;
  var file = drop.item.file;
  console.log('upload %s', file.name);
  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) + '%';
  });
 
  upload.end(function(err){
    if (err) throw err;
    console.log('upload complete %s', upload.name);
  });
});

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 file.name
  • type content-type or file.type
  • route signature GET route [/sign]

Events:

  • 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": "files.example.com"
}

Boot the test server:

$ node test

MIT