Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/component/s3
Upload files to s3 from the client
https://github.com/component/s3
Last synced: 12 days ago
JSON representation
Upload files to s3 from the client
- Host: GitHub
- URL: https://github.com/component/s3
- Owner: component
- Created: 2013-03-12T17:40:05.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-02-17T01:16:00.000Z (almost 9 years ago)
- Last Synced: 2024-04-14T02:18:53.900Z (9 months ago)
- Language: JavaScript
- Size: 38.1 KB
- Stars: 45
- Watchers: 9
- Forks: 16
- Open Issues: 4
-
Metadata Files:
- Readme: Readme.md
- Changelog: History.md
Awesome Lists containing this project
README
# s3
S3 client upload library.
## Installation
$ component install component/s3
## Config
An `S3` global must be initialized with some configuration:
- `policy` - the base64 json policy
- `signature` - the policy signature
- `bucket` the bucket name
- `acl` ACL such as "public-read"
- `key` access key## Example
```js
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);
console.log(upload.url);
});
});
```## API
### Upload(options)
- `name` remote filename or `file.name`
- `type` content-type or `file.type`Events:
- `abort` upload was aborted
- `progress` upload in progress (`e.percent` etc)
- `end` upload is complete## Testing
First populate `./config.json` with your credentials:
```json
{
"key": "asdfasdfasdfasdf",
"secret": "asdfasdfasdfasdfasdfadsfasfdsfdasdf+fHgg",
"bucket": "files.example.com"
}
```Boot the test server:
```
$ node test
```## License
MIT