Skip to content

Nexum/distribute-files

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

distribute-files

1. Installation

    npm install distribute-files

2. Usage

Configuration
   var Distributor = require("distribute-files").Distributor;
   new Distributor({
       debug: Boolean,                      // Show debug messages
       root: String,                        // The root for all local files, leave empty if none should be used, you will have to supply an absolute path later,
       servers: [
           {
               type: "ftp",
               connection: {                // see https://www.npmjs.com/package/ftp for all available options
                   host: "example.com",
                   port: 21,
                   user: "foo",
                   password: "bar"
               },
               root: null                   // if you supply a root, all target paths will be prefixed, ths is to enable different roots on different servers
           }, {
               type: "sftp",
               connection: {                // see https://www.npmjs.com/package/ssh2-sftp-client for all available options
                   host: "example.com",
                   port: 22,
                   user: "foo",             // alias for the original username param, you can use both this is just to keep the api clean(ish)
                   password: "bar"
               },
               root: null                   // if you supply a root, all target paths will be prefixed, ths is to enable different roots on different servers
           },
           function(file) {                 // completely custom transfer function, is expected to return a Promise, if you do something cool, add it to the transfer methods and pull request?
 
           }
       ]
   })
Single File
new Distributor({
    root: process.cwd(),                        
    servers: [
        {
            type: "sftp",
            connection: {
                port: 2222,
                host: "demo.wftpserver.com",
                user: "demo-user",
                password: "demo-user"
            },
            root: "/"
        },
        {
            type: "ftp",
            connection: {
                host: "speedtest.tele2.net"
            },
            root: "/upload"
        }
    ]
}).distributeFile("/file1.txt", "file1.text").then(success, error)
Multiple Files
new Distributor({
    root: process.cwd(),                        
    servers: [
        {
            type: "sftp",
            connection: {
                port: 2222,
                host: "demo.wftpserver.com",
                user: "demo-user",
                password: "demo-user"
            },
            root: "/"
        },
        {
            type: "ftp",
            connection: {
                host: "speedtest.tele2.net"
            },
            root: "/upload"
        }
    ]
}).distributeFiles([
    "/file1.txt",
    "/file2.txt"
], [
    "/anotherpath/file1.text"
    "/anotherpath/file2.text"
]).then(success, error)

3. Features

Distribute/Upload any number of files to any number of servers.

Transfers as tmp files to ensure the data on the server is always valid. Removes tmp files if anything fails during the process.

Strategies

FTP

SFTP

Custom Function

4. Development

Run Tests
    npm install mocha -g
    npm install
    npm test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published