JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 41746
  • Score
    100M100P100Q146899F
  • License MIT

A writable stream which uploads to Amazon S3 using the multipart file upload API.

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

Build Status Build Status

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

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