s3-stream-zipper

1.1.2 • Public • Published

S3 stream zipper

npm version GitHub code size in bytes

Allows to download and archive large amounts of data from AWS S3. Unlike similar solutions, it does not save downloaded files entirely in RAM and on disk. Files are downloaded in a stream in parts and immediately archived.

.archive(files) returns Stream

Installation

npm i s3-stream-zipper

Usage

  const files = [
    'video.mp4',
    'fileName.mkv',
    'folder/3.jpeg',
    { key: '6.jpeg' },
    { key: 'folder/6.jpeg' },
    { key: 'folder/6.jpeg' name: 'img6.jpeg' },
    { key: 'folder/7.jpeg' name: 'img7.jpeg', folder: 'images' },
  ];

  const s3zipper = new S3zipper({
   accessKeyId: 'ACCESS_KEY',
   secretAccessKey: 'SECRE_ACCESS_KEY',
   region: 'eu-central-1',
   bucket: 'bucket-test',
  });

  const zipperStream = s3zipper.archive(files);

Stream to file

  const s3zipper = new S3zipper({
    accessKeyId: 'ACCESS_KEY',
    secretAccessKey: 'SECRE_ACCESS_KEY',
    region: 'eu-central-1',
    bucket: 'bucket-test',
  });

  const output = await fs.createWriteStream(join(__dirname, `use-${Date.now()}.zip`));

  s3zipper
    .archive(files)
    .pipe(output);

usage s3 in config

  AWS.config.update({
    accessKeyId: 'ACCESS_KEY',
    secretAccessKey: 'SECRE_ACCESS_KEY',
    region: 'eu-central-1',
  });

  const s3 = new AWS.S3();
  const s3zipper = new S3zipper({
    s3,
    bucket: 'bucket-test',
    debug: true
  });

  const zipperStream = s3zipper.archive(files);

Stream to s3

  AWS.config.update({
    accessKeyId: 'ACCESS_KEY',
     secretAccessKey: 'SECRE_ACCESS_KEY',
     region: 'eu-central-1',
  });

  const s3 = new AWS.S3();
  const s3zipper = new S3zipper({
    s3,
    bucket: 'bucket-test',
    debug: true
  });

  const zipperStream = s3zipper.archive(files);

  const params = { Bucket: 'bucket-test', Key: `archives/${Date.now()}.zip`, Body: zipperStream };
  s3.upload(params)
    .on('httpUploadProgress', function (evt) { console.log(evt) })
    .send(function (e, r) {
      if (e) {
        const err = 'zipFile.upload error ' + e;
        console.log(err)
      }
      console.log(r)
    });

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.2
    3
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.1.2
    3
  • 1.1.1
    0
  • 1.1.0
    0
  • 1.0.0
    0

Package Sidebar

Install

npm i s3-stream-zipper

Weekly Downloads

3

Version

1.1.2

License

MIT

Unpacked Size

6.99 kB

Total Files

4

Last publish

Collaborators

  • andreizanik