tomvlk / node-split-file

:seedling: NodeJS Module to split and merge files for several purposes like transporting over unstable networks.
MIT License
41 stars 13 forks source link
bytes files nodejs npm-package promise split

Split File

Build Status

Split and merge file in multiple parts. Splittable with number of parts or maximum bytes per part

Programmatically usage

This section contains information on how to use the split-file module in your code.

Installation

You can install and save an entry to your package.json with the following command:

npm i --save split-file

Usage

All methods return a Promise (bluebird) which results in some respose if some.

Splitting file with number of parts

splitFile(file, dest?) => Promise<string[]>

Consumes:

Produces:

Example:

const splitFile = require('split-file');

splitFile.splitFile(__dirname + '/testfile.bin', 3)
  .then((names) => {
    console.log(names);
  })
  .catch((err) => {
    console.log('Error: ', err);
  });

Splitting file with maximum bytes per part

splitFileBySize(file, maxSize, dest?) => Promise<string[]>

Consumes:

Produces:

Example:

const splitFile = require('split-file');

splitFile.splitFileBySize(__dirname + '/testfile.bin', 457000)
  .then((names) => {
    console.log(names);
  })
  .catch((err) => {
    console.log('Error: ', err);
  });

Merge parts

mergeFiles(names, outputFile) => Promise<>

Consumes:

Produces:

Example:

const splitFile = require('split-file');

splitFile.mergeFiles(names, __dirname + '/testfile-output.bin')
  .then(() => {
    console.log('Done!');
  })
  .catch((err) => {
    console.log('Error: ', err);
  });

CLI Tool

Installation

To use the module from the commandline you can install this package in your global context:

npm i -g split-file

Some situations you need admin rights (sudo or windows run as admin)

Usage

The CLI tool works like you use it in your own package.

Usage: split-file -s input.bin 5
       split-file -x input.bin 457000
       split-file -m output.bin part1 part2 ...

 -s <input> <num_parts>
    Split the input file in the number of parts given.

 -x <input> <max_size>
    Split the input file into multiple parts with file size maximum of max_size bytes

 -m <output> <part> <part> ...
    Merge the given parts into the output file.

License

License is MIT, see LICENSE