2.1.1 • Published 9 months ago

decompress-stream-to-s3 v2.1.1

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

A stream for writing the contents of a tar or zip file to s3

Usage

With Writable

const ArchiveStreamToS3 = require("decompress-stream-to-s3");
const gunzip = require("gunzip-maybe");

const toS3 = new ArchiveStreamToS3({bucket: "my-bucket", prefix: "some/prefix/to/add", s3, type: "zip", ignores: [
  /.*foo.txt$/
]);

toS3.on("finish", () => {
  console.log("upload completed");
});

toS3.on("error", e => {
  console.error(e);
});

const archive = fs.createReadStream("archive.zip");

//Note: if you have compressed archive you can decompress w/ gunzip-maybe.
archive.pipe(gunzip()).pipe(toS3);

With Promise

You can also use the promise function that has gunzip built in.

const ArchiveStreamToS3 = require("decompress-stream-to-s3");

const archive = fs.createReadStream("archive.tgz");

ArchiveStreamToS3.promise({
  bucket: "my-bucket",
  prefix: "prefix",
  s3: s3,
  stream: archive,
  type: "tar",
}).then((result) => {
  console.log(result); //=> { keys: [...]}
});

Contributing

Unit tests

npm run test

Integration tests

For integration tests to run you'll need to set the following env vars:

namepurpose
ARCHIVE_STREAM_TO_S3_TEST_BUCKETthe s3 bucket, this bucket is removed and recreated
ARCHIVE_STREAM_TO_S3_TEST_PREFIXthe prefix to use

You'll also need the aws-cli commands on your path.

Run

npm run it

Release

npm run release
2.1.1

9 months ago

2.1.0

9 months ago

1.3.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.1

3 years ago

1.2.0

3 years ago