Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ungoldman/nano-s3
Upload a file to S3.
https://github.com/ungoldman/nano-s3
aws nano node s3
Last synced: 16 days ago
JSON representation
Upload a file to S3.
- Host: GitHub
- URL: https://github.com/ungoldman/nano-s3
- Owner: ungoldman
- License: isc
- Created: 2018-08-16T15:43:25.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-01T16:15:06.000Z (about 6 years ago)
- Last Synced: 2024-10-19T03:55:11.808Z (26 days ago)
- Topics: aws, nano, node, s3
- Language: JavaScript
- Homepage:
- Size: 14.6 KB
- Stars: 45
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# nano-s3 [![stability][0]][1]
[![npm version][2]][3] [![build status][4]][5]
[![downloads][8]][9] [![js-standard-style][10]][11]Upload a file to S3.
[0]: https://img.shields.io/badge/stability-stable-brightgreen.svg?style=flat-square
[1]: https://nodejs.org/api/documentation.html#documentation_stability_index
[2]: https://img.shields.io/npm/v/nano-s3.svg?style=flat-square
[3]: https://npmjs.org/package/nano-s3
[4]: https://img.shields.io/travis/ungoldman/nano-s3/master.svg?style=flat-square
[5]: https://travis-ci.org/ungoldman/nano-s3
[8]: http://img.shields.io/npm/dm/nano-s3.svg?style=flat-square
[9]: https://npmjs.org/package/nano-s3
[10]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
[11]: https://github.com/feross/standard## About
Sometimes you just need a small lib to do a simple task.
- uploads a file to [s3](https://aws.amazon.com/s3/)
- that's it
- no other features
- very small!
- 7.4 KB unpacked
- compare to [`aws-sdk`](https://www.npmjs.com/package/aws-sdk)'s 30.7 MBThanks to [toddself](https://github.com/toddself) for providing the [original code](https://github.com/ungoldman/nano-s3/commit/ec3bb4c5df16582cc4441243e9437f2a2258c9d2) that this was adapted from!
## Installation
```
npm install nano-s3
```## Usage
```js
const fs = require('fs')
const path = require('path')
const nanoS3 = require('nano-s3')const options = {
// AWS Config
// Environment variables strongly recommended for keys
accessKeyId: 'abc',
secretAccessKey: 'xyz',// protocol is optional, defaults to https
protocol: 'https',
host: 's3.us-west-1.amazonaws.com',
bucket: 'your-bucket-name',// Name of uploaded file on S3
filename: 'image.jpg',// MIME type of file
contentType: `image/jpeg`,// File data (Should be a Buffer)
data: fs.readFileSync(path.join(__dirname, 'image.jpg')),// Directory path in bucket (optional)
path: 'path/in/bucket',// Max file size, default 2MB (optional).
// Required by AWS for upload policy.
maxFileSize: 2 * 1024 * 1024
}nanoS3(options, function (err, res) {
if (err) throw err
console.log(res.statusCode, res.statusMessage)
})
```## API
### `nanoS3(options, cb)`
Params:
- `options` - *Object*:
- `accessKeyId` - *String*: AWS access key ID with write access to the host and bucket.
- `secretAccessKey` - *String*: AWS secret access key for signing.
- `protocol` - *String*: protocol to use for AWS URL. Default: `'https'`.
- `host` - *String*: AWS host to upload the files to, e.g. `s3.us-west-1.amazonaws.com`.
- `bucket` - *String*: Your AWS bucket name.
- `filename` - *String*: Name of file to upload.
- `contentType` - *String*: MIME type of file.
- `data` - *Buffer*: File data. Should be a Buffer.
- `path` - *String*: Path in bucket to upload to (optional). Default: none (root).
- `maxFileSize` - *Number*: Max file size (optional). Default: 2MB (`2 * 1024 * 1024`).
- `cb` - *Function*:
- `err` - *Error*: `null` if everything went fine, `Error` object if something went wrong.
- `res` - [*Response*](https://nodejs.org/api/http.html#http_class_http_serverresponse): `http` response object.## License
[ISC](LICENSE.md)