gulp-download-stream
v0.0.20
Published
Gulp plugin for downloading files in parallel into Vinyl streams
Downloads
4,840
Maintainers
Readme
gulp-download-stream
Request wrapper for gulp, allowing you to download files via http/https. The files contents are streamed into a stream of Vinyl files and so download in parallel / concurrently.
Installation
npm install gulp-download-stream --save
Usage
var download = require("gulp-download-stream");
Download single file
To download a single file, pass a string as the first argument to download
.
download("http://domain.com/path/to/file.ext")
.pipe(gulp.dest("downloads/"));
Download multiple files
To download multiple files, pass an array of strings as the first argument to download
.
download([
"http://domain.com/path/to/file1.ext",
"http://domain.com/path/to/file2.ext"
])
.pipe(gulp.dest("downloads/"));
The files are downloaded concurrently into stream of Vinyl files, and so are suitable to be piped into other gulp plugins. Each Vinyl file is also itself a stream, and so any downstream plugins must also support stream-based Vinyl files.
Specify local file name
You can specify the local file names of files downloaded. You can do this for one file
download({
file: "newFileName.ext",
url: "http://domain.com/path/to/file.ext"
})
.pipe(gulp.dest("downloads/"));
or for multiple files.
download([{
file: "newFileName1.ext",
url: "http://domain.com/path/to/file1.ext"
}, {
file: "newFileName2.ext",
url: "http://domain.com/path/to/file2.ext"
}])
.pipe(gulp.dest("downloads/"));
Pass options to request
You can pass options to request as the second argument. For example, you can request using HTTP authentication.
download("http://domain.com/path/to/file.ext", {
"auth": {
"user": "username",
"pass": "password",
"sendImmediately": false
}
})
.pipe(gulp.dest("downloads/"));
Error handling
For any file, if node can't connect to the server, or the server returns a status code >= 400, then the Vinyl stream will emit an error and the containing gulp task will fail.