JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 41420
  • Score
    100M100P100Q148757F
  • 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

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 function that creates streams.
  • 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.

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