Prerequisite
- Um Braincube IoT Server
- O aplicativo FTP/SFTP instalado (consulte o appsmanager para instalar novos aplicativos)
- Uma máquina com um servidor FTP/SFTP instalado e acessível
The node settings
Assim que o aplicativo FTP/SFTP estiver instalado, você encontrará novos nós na sua paleta de nós:
- FTP
- SFTP

FTP
FTP in
O nó ftp-in foi projetado para ajudá-lo a ler dados de uma aplicação FTP.
Você pode facilmente arrastar e soltar este nó da paleta para o seu fluxo de dados e começar a trabalhar com ele. A primeira coisa a fazer é configurar seu servidor FTP.

Para começar com este nó, você criará um novo "FTP endpoint" abrindo o menu suspenso, escolherá "Add new FTP Server" e clicará no botão "edit". Você então acessará esta página onde possui uma aba para as configurações nas quais temos que trabalhar:
Sobre a conexão do servidor, o ftp-in requer:
- Host: um endereço IP que é o IP do ftp-in ao qual você deseja se conectar
- User: nome de usuário para autenticação
- Password: senha para autenticação
- Port: 21 é a porta padrão usada pelo protocolo FTP, altere-a se usar uma porta específica em sua implementação
- Connection Timeout: quanto tempo (em segundos) esperar para que a conexão de controle seja estabelecida
- PASV Timeout: quanto tempo (em segundos) esperar para que uma conexão de dados PASV seja estabelecida.
- Keepalive: com que frequência (em segundos) enviar um comando 'dummy' (NOOP) para manter a conexão ativa.
- Data connection encryption: definido como true para criptografia de conexão de dados e de controle. Isso é usado para FTPS
- Implicit encryption: Definido como true se o servidor FTP de destino executa FTPS puro e não FTP com criptografia opt-in. Isso é usado para FTPS
- Secure Options: opções adicionais a serem passadas para tls.connect() escritas em formato JSON. Como {"rejectUnauthorized": true}
Depois de configurar isso, você pode clicar em Add, Done, Deploy para salvar as configurações e então voltar para a configuração deste nó.

Operations
- list: retorna um array dos arquivos/pastas na pasta sftp padrão do usuário, contendo type, name, sticky, rights (um objeto), acl, owner, group, size e date.
- get: usa msg.payload.filename e envia a saída para msg.payload.filedata/code
- put: usa msg.payload.filename e msg.payload.filedata
- delete: usa apenas msg.payload.filename
Nas propriedades do conector, é possível selecionar uma pasta específica para trabalhar no campo "Working Directory" ou deixá-lo em branco se for usar o diretório raiz.
Se a operação selecionada for get, put ou delete, você precisará especificar o nome do arquivo no campo "Filename"
É possível passar esses parâmetros na entrada do conector alterando as chaves "msg.payload.workdir" e "msg.payload.filename"

A função PUT no FTP é usada para fazer upload (transferir) um arquivo do sistema local (o cliente) para o servidor remoto. Permite que os usuários enviem arquivos de forma segura para um diretório específico no servidor.
A função GET no FTP é usada para baixar (recuperar) um arquivo do servidor remoto para o sistema local (o cliente).
A função LIST no FTP é usada para recuperar uma listagem de diretório de arquivos e diretórios presentes no servidor remoto.
A função DELETE no FTP é usada para remover arquivos do servidor remoto. Recomenda-se cautela ao usar este comando.