Conectores
Dados e Armazenamento
SFTP
25 min
objetivo o conector sftp ( secure file transfer protocol ) permite a transferência segura de arquivos entre sistemas e servidores remotos com ele, é possível realizar operações como upload ( envio ) e download ( recebimento ) de arquivos através de uma conexão criptografada, assegurando a proteção dos dados durante a transferência criando uma conexão antes de usar o conector sftp, é necessária a criação de uma conexão vamos lá clique em propriedades em selecionar uma conexão clique em criar nova conexão vamos preencher os dados da conexão com dados de sua conexão preenchidos, clique em salvar conexão agora você já pode montar seus fluxos utilizando o conector sftp utilizando o conector sftp com uma conexão sftp configurada, vamos criar um novo fluxo, quer irá criar um arquivo json, em sftp a partir de uma requisição http selecionamos o modo canvas, e com editor canvas aberto, vamos arrastar dois conectores, sendo um http e outro sftp, na sequência faremos a linkage como à imagem abaixo vamos a configuração do primeiro passo 1 ) clique no connector para configurar 2 ) aba parametrização, no caso especifico usaremos o método get, também utilizaremos uma url random, que nos gera dados aleatórios 3 ) aba propriedades, vamos informar apenas o nome do passo, já que não temos autenticação à fazer configurando segundo passo com sftp 1 ) clique no connector para configurar 3 ) aba parametrização 4 ) selecionamos a operação desejada, no caso vamos criar um arquivo para salvar o payload da requisição http 5 ) caminho do arquivo aqui é o caminho relativo onde queremos salvar (pode ser "/" ou qualquer outro, desde que exista no servidor e o usuário tenha permissão de escrita) 6 ) nome do arquivo aqui informaremos o nome que pode ser fixo, ou como no caso, usaremos o resultado da requisição http, para criar um arquivo com nome dinâmico, baseado no valor de um campo "uid", esse campo nos retorna um uuid, obs é necessário o uso da função "get' para mais detalhes, visite o https //app archbee com/docs/312alvuzcdxia84m0tnwx/0vqvpw6saqz2z1jgp8fwc 7 ) conteúdo do aquivo aqui também temos as mesmas possibilidades do campo nome, e mais a de salvar todo o payload da requisição http, ou de qualquer outro passo anterior, no campo nosso retorno é um json, e precisaremos usar uma função "getjsonescaped" que irá retornar json qus erá salvo j no arquivo obs esse campo também suporta conteudos de arquivos em base64, ele fará o decode do mesmo e criar o arquivo no diretório informado 8 ) aba propriedades, vamos informar o nome do passo e a conexão que será utilizada 9 ) executaremos um teste de todos fluxo 10 ) com teste finalizado, podemos analisar os detalhes nesse caso, nossa requisição http nos retornou o payload a seguir saída http { "id" 53, "uid" "d774bc23 9b40 406f 9d38 4fd40ca66b70", // campo que usamos para nomear o arquivo "password" "wecztfc46b", "first name" "kevin", "last name" "lynch", "username" "kevin lynch", "email" "kevin lynch\@email com", "avatar" "https //robohash org/fugitveritatisrerum png?size=300x300\u0026set=set1", "gender" "polygender", "phone number" "+251 1 204 707 6787", "social insurance number" "948033170", "date of birth" "2004 03 13", "employment" { "title" "retail facilitator", "key skill" "communication" }, "address" { "city" "samton", "street name" "okuneva meadows", "street address" "5699 bechtelar divide", "zip code" "37772 5477", "state" "colorado", "country" "united states", "coordinates" { "lat" 72 71042078010802, "lng" 69 74851376761379 } }, "credit card" { "cc number" "4233 8980 1719 5205" }, "subscription" { "plan" "starter", "status" "blocked", "payment method" "bitcoins", "term" "full subscription" } } entrada sftp { "operation" "create", "file content" "{\\"address\\" {\\"city\\" \\"samton\\",\\"coordinates\\" {\\"lat\\" 72 71042078010802,\\"lng\\" 69 74851376761379},\\"country\\" \\"united states\\",\\"state\\" \\"colorado\\",\\"street address\\" \\"5699 bechtelar divide\\",\\"street name\\" \\"okuneva meadows\\",\\"zip code\\" \\"37772 5477\\"},\\"avatar\\" \\"https //robohash org/fugitveritatisrerum png?size=300x300\\\u0026set=set1\\",\\"credit card\\" {\\"cc number\\" \\"4233 8980 1719 5205\\"},\\"date of birth\\" \\"2004 03 13\\",\\"email\\" \\"kevin lynch\@email com\\",\\"employment\\" {\\"key skill\\" \\"communication\\",\\"title\\" \\"retail facilitator\\"},\\"first name\\" \\"kevin\\",\\"gender\\" \\"polygender\\",\\"id\\" 53,\\"last name\\" \\"lynch\\",\\"password\\" \\"wecztfc46b\\",\\"phone number\\" \\"+251 1 204 707 6787\\",\\"social insurance number\\" \\"948033170\\",\\"subscription\\" {\\"payment method\\" \\"bitcoins\\",\\"plan\\" \\"starter\\",\\"status\\" \\"blocked\\",\\"term\\" \\"full subscription\\"},\\"uid\\" \\"d774bc23 9b40 406f 9d38 4fd40ca66b70\\",\\"username\\" \\"kevin lynch\\"}", "file name" "d774bc23 9b40 406f 9d38 4fd40ca66b70 json", // veja como ficou o nome do arquivo "file path" "/upload" } saída sftp (esse retorno muda de acordo com a operação) success operação createfilefromtemp sftp descrição a operação criar um arquivo da pasta temporária do conector sftp permite enviar arquivos para um servidor sftp a partir de arquivos armazenados na pasta temporária do sistema esta operação é especialmente útil quando você precisa processar um arquivo em etapas anteriores do fluxo (é comumente utilizada em conjunto com outros conectores, como o conector csv que mantém o arquivo na pasta temporária durante a execução do fluxo) e depois enviá lo via sftp como funciona leitura do arquivo temporário o conector lê o arquivo da pasta temporária carregamento do conteúdo o conteúdo do arquivo é carregado na memória envio via sftp o arquivo é enviado para o servidor sftp no caminho especificado parâmetros de entrada a operação criar um arquivo da pasta temporária requer os seguintes parâmetros campos obrigatórios campo tipo descrição nome do arquivo de saída string nome do arquivo na pasta temporária que será enviado caminho do diretório string caminho de destino no servidor sftp onde o arquivo será salvo config new file path string novo caminho para mover arquivo após envio exemplo de json de saída resposta de sucesso { "message" "arquivo csv relatorio vendas csv enviado com sucesso via sftp " } resposta de erro arquivo não encontrado { "code" "sftp csv read error", "message" "erro ao ler arquivo csv temporário relatorio vendas csv no such file or directory" } resposta de erro falha no envio sftp { "code" "sftp send csv error", "message" "failed to upload file permission denied" } resposta de erro conexão sftp { "code" "sftp connection error", "message" "failed to connect to sftp server dial tcp 192 168 1 200 22 connection refused" } operação mover arquivo a operação move arquivo permite mover arquivos em um servidor sftp ou entre conexões sftp diferentes essa funcionalidade é útil para organizar, renomear ou transferir arquivos entre diretórios e servidores de forma segura e automatizada como funciona durante a execução, o sistema tentará mover o arquivo especificado para o destino desejado a operação pode manter o mesmo nome do arquivo ou renomeá lo durante o processo caso o destino já contenha um arquivo com o mesmo nome, é possível habilitar a sobrescrita se ocorrer algum erro, o sistema realiza um rollback automático , tentando restaurar o arquivo original ⚠️ atenção caso a restauração também falhe, o arquivo original permanecerá em um diretório temporário e o caminho será retornado na mensagem de erro campos disponíveis campo tipo descrição diretório atual string caminho de onde o arquivo será movido diretório destino string caminho de destino dentro do mesmo servidor sftp ou em outro servidor conectado nome do arquivo string nome do arquivo original que será movido novo nome do arquivo (opcional) string nome alternativo para renomear o arquivo ao movê lo sobrescrever arquivo existente bolean define se o arquivo de destino deve ser sobrescrito caso já exista ✅ exemplo de resposta de sucesso { "file" "example txt", "path" "/destination/folder/", "success" true } 💡 dica caso o arquivo tenha sido renomeado, o campo `"file"` refletirá o novo nome ❌ exemplo de erro com falha no rollback { "code" "sftp move file", "message" "erro ao mover arquivo via sftp error during rollback, need manual intervention file does not exist the original file is at /tmp/8a7fc369 9ab6 476c 9ec0 85116f5135dd/example txt" } ⚠️ nota a mensagem de erro inclui o caminho temporário onde o arquivo original está armazenado, caso o rollback falhe exemplos de parametrização mover arquivo mover e renomear arquivo mover arquivo com sobrescrita habilitada (sem renomear) mover e renomear arquivo com sobrescrita habilitada boas práticas validar paths de origem e destino antes da operação evitar nomes duplicados quando a sobrescrita estiver desativada monitorar o diretório temporário em caso de falhas de rollback
