Package Exports
- s3-stream-upload
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (s3-stream-upload) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
s3-stream-upload
A writable stream which uploads to Amazon S3 using the multipart file upload API.
Inspired by s3-upload-stream.
Install
npm install s3-stream-upload
Usage
var S3StreamUpload = require("s3-stream-upload");
var uploader = S3StreamUploader({
accessKeyId: process.env.S3_ACCESS_KEY_ID,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
Bucket: process.env.S3_BUCKET_NAME
});
var key = "file.mp3";
fs.readFileStream(__dirname + "/file.mp3")
.pipe(uploader({ Key: key }))
.on("error", function (err) {
console.error(err);
})
.on("finish", function () {
console.log("File uploaded!");
});
API
S3StreamUploader(s3Config)
Takes configuration (same options as aws-sdk's S3 constructor) and returns a new stream uploader factory.
uploader(config)
Creates and returns a WritableStream for uploading to S3. Takes a config
object, which takes the same options as S3.createMultipartUpload, and will use the Bucket
property of the creation if not specified in config
. Additional, non-S3 config options may be set, listed below:
concurrent
How many chunks can be sent to S3 concurrently.1
by default.
uploadStream
Extends WritableStream.
Events
chunk-uploaded
- Emitted when a MPU chunk has been uploaded to S3, with the number of chunks uploaded at this point.- All WritableStream events.
Properties
bytesWritten
- Like fs.WriteStream, bytes uploaded to S3 currently.
Testing
To run unit tests, run:
npm test
For integration tests on actually uploading to S3, define a few environment variables (S3_ACCESS_KEY_ID
, S3_SECRET_ACCESS_KEY
, and S3_BUCKET_NAME
) and run the following:
npm run integration
TODO
Document mock
features.
License
MIT License, Copyright (c) 2014 Jordan Santell