1.0.2 • Published 3 years ago

ctrlfilezillaserver v1.0.2

Weekly downloads
5
License
MIT
Repository
github
Last release
3 years ago

CtrlFileZillaServer

CtrlFileZillaServer é um conjunto de funções para gerenciar o FileZilla Server

Language Platforms License HitCount

FileZilla é um dos melhores servidores FTP gratuitos, fácil de utilizar e muito estável, porem, não possui API. Toda gestão é feita via interface gráfica, o que acaba dificultando um gerenciamento automático do servidor. Para contornar isto, criei um repositório que gerencia as contas de FTP modificando o arquivo XML FileZilla Server.xml localiado na pasta do FileZilla Server.

Você pode baixar o Filezilla server em: https://filezilla-project.org/download.php?type=server


Instalando

npm install ctrlfilezillaserver

Carregando o repositório

var FilezillaCtrl = require('ctrlfilezillaserver');

Iniciando

Antes de executar alguma das funções precisamos definir o diretório onde o Filezilla Server se encontra. Esta é uma função assíncrona e após sua conclusão é feito as chamadas as funções.

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

	// Aqui você faz a chamada a função desejada

}).catch(function(err){

	console.log(err);

});

Normalmente o Filezila Server fica no diretório abaixo: C:\\Program Files (x86)\\FileZilla Server\\

Listando as Contas Disponíveis

Esta função ira retornar um array com todas as constas, com os dados abaixo:

  • Usuário
  • Diretório
  • Permissões

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

	FilezillaCtrl.contas_listar().then(function(DadRet){

		console.log(JSON.stringify(DadRet));

	}).catch(function(err){

		console.log(err);

	});

}).catch(function(err){

	console.log(err);

});

Retorno

[
  {
    "Nome": "teste1",
    "Diretorio": "C:\\pasta1",
    "Permissoes": {
      "FileRead": true,
      "FileWrite": true,
      "FileDelete": true,
      "DirCreate": true,
      "DirDelete": true,
      "DirList": true,
      "DirSubdirs": true
    }
  }
  }
]

Altera uma conta existe

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    var InfDad =    {   
                    Senha: "aaabbb", 
                    Diretorio: "C:\\PastaTeste1", 
                    Permissoes: {
                    "FileRead": true,
                    "FileWrite": true,
                    "FileDelete": true,
                    "FileAppend": true,
                    "DirCreate": true,
                    "DirDelete": true,
                    "DirList": true,
                    "DirSubdirs": true,
                    "IsHome": true,
                    "AutoCreate": false
                    } 
                    };

    FilezillaCtrl.contas_alterar("teste1", InfDad).then(function(){

        console.log("OK");
    
    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

	console.log(err);

});

Altera a Senha de uma Conta

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    FilezillaCtrl.contas_alterar_senha("teste1", "aaabbb").then(function(){

        console.log("OK");

    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

	console.log(err);

});

Altera o Diretório de uma Conta

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    FilezillaCtrl.contas_alterar_diretorio("teste1", "C:\\PastaTeste1").then(function(){

        console.log("OK");

    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

	console.log(err);

});

Altera as Permissões de uma Conta

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    var InfDad =    {
                    "FileRead": true,
                    "FileWrite": true,
                    "FileDelete": true,
                    "FileAppend": true,
                    "DirCreate": true,
                    "DirDelete": true,
                    "DirList": true,
                    "DirSubdirs": true,
                    "IsHome": true,
                    "AutoCreate": false
                    } ;

    FilezillaCtrl.contas_alterar_permissoes("teste1", InfDad).then(function(){

        console.log("OK");

    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

	console.log(err);

});

Verifica se uma Conta Existe

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    FilezillaCtrl.contas_existe("teste1").then(function(DadRet){

        console.log(JSON.stringify(DadRet));

    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

	console.log(err);

});

Retorno

  • true: Conta existe
  • false: Conta não existe

Deleta uma Conta

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    FilezillaCtrl.contas_deletar("teste1").then(function(){

        console.log("OK");

    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

	console.log(err);

});

Criar uma nova Conta

Chamando

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    var InfDad =    {   
                    Senha: "aaabbb", 
                    Diretorio: "C:\\PastaTeste1", 
                    Permissoes: {
                    "FileRead": true,
                    "FileWrite": true,
                    "FileDelete": true,
                    "FileAppend": true,
                    "DirCreate": true,
                    "DirDelete": true,
                    "DirList": true,
                    "DirSubdirs": true,
                    "IsHome": true,
                    "AutoCreate": false
                    } 
                    };

    FilezillaCtrl.contas_criar("teste1", InfDad).then(function(){

        console.log("OK");

    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

	console.log(err);

});

Referências

Permissões

O nó de permissões possui as permissões abaixo:

  • FileRead: Ler Arquivos
  • FileWrite: Criar/Editar Arquivos
  • FileDelete: Deletar Arquivos
  • DirCreate: Criar Diretório
  • DirDelete: Deletar Diretório
  • DirList: Listar Diretórios
  • DirSubdirs: Exibir Sub Diretórios

Os valores das variaveis é sempre um boolean, onde:

  • true: Tem permissão
  • false: Não tem permissão

Sucesso/Erro

Em todas funções temos o retorno controlado em then e catch (Padrão para funções Promises). Na função catch esta presente um parâmetro que retorna um objeto Error indiando a causa do erro.

Exemplo de Erro

Chamada

FilezillaCtrl.init("C:\\Program Files (x86)\\FileZilla Server\\").then(function(){

    FilezillaCtrl.contas_deletar("XXXXXXXXXXX").then(function(){

        console.log("OK");

    }).catch(function(err){

        console.log(err);

    });

}).catch(function(err){

    console.log(err);

});

Retorno

Error: Error: Error: Conta nao localizada
    at Promise (C:\index.js:535:19)
    at new Promise (<anonymous>)
    at Object.contas_criar (G:\index.js:362:12)
    at G:\tests.js:7:19

Contato

Paloma Macetko