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', 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.nametype content-type or file.typeroute signature GET route [/sign]Events:
error an error occurredabort upload was abortedprogress upload in progress (e.percent etc)end upload is completeFirst populate ./config.json with your credentials:
{
"key": "asdfasdfasdfasdf",
"secret": "asdfasdfasdfasdfasdfadsfasfdsfdasdf+fHgg",
"bucket": "files.example.com"
}
Boot the test server:
$ node test
MIT