Archive. Date of access: 12 Jan 2022

Marak 6e57ad3f9f [docs] Update README 8 lat temu
bin 31d8a6eb58 [api] [refactor] Move http handler into middleware. Added basic tests. 10 lat temu
examples 31d8a6eb58 [api] [refactor] Move http handler into middleware. Added basic tests. 10 lat temu
lib 31d8a6eb58 [api] [refactor] Move http handler into middleware. Added basic tests. 10 lat temu
test 31d8a6eb58 [api] [refactor] Move http handler into middleware. Added basic tests. 10 lat temu
.gitignore 983b885df2 First commit 10 lat temu
README.md 6e57ad3f9f [docs] Update README 8 lat temu
index.js 31d8a6eb58 [api] [refactor] Move http handler into middleware. Added basic tests. 10 lat temu
package.json 31d8a6eb58 [api] [refactor] Move http handler into middleware. Added basic tests. 10 lat temu

README.md

vinyl-http

Unreleased v0.0.0

Information

Packagevinyl-http
Description Vinyl adapter for HTTP
Node Version >= 0.10

Purpose

This vinyl adapter allows you to either either post or receive streams of vinyl from an HTTP server.

This enables the ability to quickly push or retrieve streams of files to or from remote sources.

An HTTP server component is required and shipped with this module. It can be used as a stand-alone server or as middleware for your existing http server.

Alternatives to using this module could be gulp-sftp, but that would necessitate an open ssh server while vinyl-http requires only an open http server.

Usage

Start the server

var server = require('vinyl-http').createServer();
server.listen(8888);

Push local to remote

var vhttp = require('../index');
var vfs = require('vinyl-fs');
var map = require("map-stream");

var log = function(file, cb) {
  console.log(file)
  cb(null, file);
};

vfs.src('test/fixtures/**') 
.pipe(vhttp.dest('http://localhost:8888/upload'))
.pipe(map(log));

Pull remote to local

var vhttp = require('../index');
var vfs = require('vinyl-fs');
var map = require("map-stream");

var log = function(file, cb) {
  console.log(file)
  cb(null, file);
};

vhttp.src('http://localhost:8888/test/fixtures/**')
 .pipe(map(log))
 .pipe(vfs.dest('./download'));

Stream from remote to remote

var vhttp = require('../index');
var vfs = require('vinyl-fs');
var map = require("map-stream");

var log = function(file, cb) {
  console.log(file)
  cb(null, file);
};

vhttp.src('http://localhost:8888/test/fixtures/**')
 .pipe(map(log))
 .pipe(vhttp.dest('http://localhost:8888/upload2'));

API

src(globs[, opt])

  • Takes a glob string or an array of glob strings as the first argument.
  • Returns a Readable/Writable stream.
  • On write the stream will simply pass items through.
  • This stream emits matching [vinyl] File objects

dest(folder[, opt])

  • Takes a folder path as the first argument.
  • Possible options for the second argument:
  • Returns a Readable/Writable stream.

TODO

  • Add Tests
  • Investigate adding compression
  • Add protection for directory traversals on server