nano-s3
v1.1.0
Published
Upload a file to S3.
Downloads
93
Readme
nano-s3
Upload a file to S3.
About
Sometimes you just need a small lib to do a simple task.
- uploads a file to s3
- that's it
- no other features
- very small!
- 7.4 KB unpacked
- compare to
aws-sdk
's 30.7 MB
Thanks to toddself for providing the original code that this was adapted from!
Installation
npm install nano-s3
Usage
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:http
response object.