blakerutledge / etag-stream

A Transform stream that calculates Etag/S3 MD5 sum. Uses the same algorithm as S3.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

A Transform stream that calculates Etag/S3 MD5 sum. Uses the same algorithm as S3.

License:MIT License


Languages

Language:JavaScript 98.7%Language:SCSS 1.3%