https://github.com/zenflow/node-fast-download
node module and command-line program for accelerated (multiple connections) http download Stream
https://github.com/zenflow/node-fast-download
Last synced: over 1 year ago
JSON representation
node module and command-line program for accelerated (multiple connections) http download Stream
- Host: GitHub
- URL: https://github.com/zenflow/node-fast-download
- Owner: zenflow
- Created: 2013-06-25T00:39:33.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2019-01-14T12:19:22.000Z (over 7 years ago)
- Last Synced: 2025-02-28T14:44:18.827Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 60.5 KB
- Stars: 30
- Watchers: 2
- Forks: 10
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# node-fast-download
node module and command-line program for accelerated (multiple connections) http download Stream
[](https://david-dm.org/zenflow/node-fast-download)
[](https://david-dm.org/zenflow/node-fast-download#info=devDependencies)
[](https://www.npmjs.com/package/fast-download)
# install
`$ npm install -g fast-download` to install as a command-line program or `$ npm install --save fast-download` to add it to your project
# command-line usage
```
$ fast-download -h
Usage: fast-download [options]
Options:
-h, --help output usage information
-V, --version output the version number
-d, --directory destination directory (default: current working directory)
-f, --filename destination filename (default: base filename in url)
-o, --overwrite overwrite existing file (default is to resume)
-c --chunksAtOnce the number of data chunks to download at the same time (default: 3)
-s --chunkSize the size of a data chunk in MB (default: 0, meaning file size divided by chunksAtOnce)
-t, --timeout timeout on http requests in seconds (default: 0, meaning no timeout)
-w, --width display width (default: 72)
```
# module usage
## example
``` js
var FastDownload = require('fast-download');
var dl = new FastDownload(url, options);
dl.on('error', function(error){throw error;})
dl.on('start', function(dl){console.log('started');})
dl.on('end', function(){console.log('ended');});
dl.pipe(fs.createReadStream('foo.bar'));
```
or use the constructor callback instead of the `'start'` event (you may use both together)
```js
var FastDownload = require('fast-download');
new FastDownload(url, options, function(error, dl){
if (error){throw error;}
console.log('started');
dl.on('error', function(error){throw error;});
dl.on('end', function(){console.log('ended');});
dl.pipe(fs.createReadStream('foo.bar'));
});
```
once the `'start'` event has fired, you can access `dl.headers`, `dl.chunks`, and other data members
## options
`'destFile'` if set, download is written to this file location. default: null
`'resumeFile'` if `'destFile'` is set and `'resumeFile'` is true, the download will start where the existing file leaves off. default: false
`'start'` the starting position in bytes. default: 0
`'end'` the ending position in bytes. default: null (end of file)
`'chunksAtOnce'` the maximum number of chunks to download at a time. default: 3
`'chunkSize'` the size of each chunk in bytes. default: null (download size divided by `'chunksAtOnce'`)
# Changelog
### v0.3.5
* Added changelog lol
* Don't rely on sketchy `request` `'end'` event
* Added badges/shields to readme