pyramation / etag-stream

A Transform stream that calculates Etag/S3 MD5 sum. Uses the same algorithm as S3.
MIT License
0 stars 1 forks source link
es6 etag javascript node-module npm s3 streams

ETag Stream Build Status

A Transform stream that calculates Etag/S3 MD5 sum. Uses the same algorithm that S3 uses to calculate the ETag.

This is especially useful for verifying large files uploaded using multipart S3 API, enabling use of createReadStream to keep memory usage low.

Installation

npm install etag-stream

Usage

const ETagStream = require('etag-stream');
const stream = new ETagStream();

let result = null;
stream
  .on('error', e => {
    reject(e);
  })
  .on('etag', data => {
    result = data.toString();
  })
  .on('data', data => {
    // data passes through if you need to do more!
  })
  .on('finish', () => {
    resolve(result);
  });
createReadStream(local).pipe(stream);

ETags compatible with s3, thanks to the author of this post for the breakdown of the algorithm.