Boa tarde!
Estou com uma demanda para envio de arquivos para um servidor SFTP e comecei a usar a nova função SftpUserPassFileUpload.
Estou com um problema onde a função sempre retorna -1, e não consigo ver o que está errado pois ela não me dá nenhum outro retorno (como usuário ou senha inválido, entre outros).
Uso as mesmas credenciais no FileZilla e WinSCP e funciona normalmente.
Alguém já usou essa nova função e sabe dizer como obter um retorno mais detalhado?
Grato.
Oi Giordano,
-1 é uma falha na requisição.
Já verificou se o servidor tem SSHD presente conforme a documentação ? Talvez o problema seja esse.
Bom dia! Como posso verificar isso? É um servidor de terceiro.
Oi, na própria documentação do link para sobre o SSHD.
Ao testar esta função favor apontar para um servidor com o SSHD presente e utilizar um nome de usuário e senha válidos.
Boa noite! Sim, mas eu gostaria de saber como posso identificar se o servidor em questão possui SSHD, pois este é um servidor de terceiro onde o único acesso que eu tenho é o endereço, usuário e senha. O que eu consigo afirmar é que é um servidor SFTP que funciona normalmente ao usar outros gerenciadores como o FileZilla.
E então, pessoal, também estou com retorno -1, com um servidor que sendo acessado normalmente pelo FileZilla. Como conferir esse SSHD? Do que exatamente se trata?
Aqui estou com erro -2 em um .txt de teste, não consigo entender o motivo, o arquivo abre normalmente com FOPEN e
O servidor está ok, credenciais também, pois uso as mesmas no FileZilla com protocolo SFTP.
Alguém tem mais documentação sobre essas funções?
Outra pergunta: o que quer dizer SSHD presente? Desconheço essa sigla nesse contexto.
Boa noite. Verifique se você está usando o caminho completo do arquivo e não só o caminho do RootPath. Por algum motivo ele só aceita caminhos absolutos, e a documentação não deixa isso claro (inclusive é uma documentação bem incompleta e cheia de erros). Exemplo: use “C:\TOTVS\Protheus12\Protheus_Data\Temp\arquivo.txt” ao invés de “\Temp\arquivo.txt”
Pois então, mesmo colocando o caminho todo (arquivo local do PC) recebemos -2 como retorno.
status := SFTPUserPassFileUpload(“C:\11-01-21\teste.txt”, “teste_out.txt”, ‘165.72.204.111’, ‘user123’, ‘senha123’)
Estou testando sem ser via tela, dando set environment no módulo FATURAMENTO. Alguma outra ideia do que pode estar ocorrendo?
Sidnei, coloca o arquivo no Servidor e então no primeiro parâmetro coloque o caminho inteiro… como o Giordano comentou !
Nosso server é no TOTVS CLOUD, não sei como fica o caminho antes do rootpath nesse caso (perdão o desconhecimento). Testei colocando na pasta System e na TEMP e buscando o caminho do arquivo com a função cGetFile, mas o caminho retornado é a partir do Rootpath. Alguma ideia? (Abri 2 chamados na totvs mas não respondem, e pra piorar tenho urgencia nisso).
Resolvido o retorno -2, ocorre que deve ser passado o caminho completo local no servidor, que no nosso caso pode ser buscado usando o seguinte trecho de código: AllTrim(GetSrvProfString(“ROOTPATH”,“”)) + ‘\temp\arquivo.txt’. (Para um arquivo na pasta TEMP do protheus_data.
Agora estamos com erro -1… Difícil trabalhar assim, sem documentação detalhada e sem códigos e descrições de erro detalhados… Infelizmente um costume da TOTVS que passou da hora de mudar.
Bom dia!
Em contato com a TOTVS, fui informado que no meu caso o problema estava ocorrendo pois a função não estava permitindo a conexão com servidores SFTP que usem uma porta diferente da padrão que é 22, no meu caso eu estava usando a 8022.
A função também estava com problemas pelo fato de possuir mais de 10 caracteres em seu nome, e ao usar a mesma em AdvPL e não TL++, estavam ocorrendo erros de chamar a função de upload ao invés da de download e vice versa.
Foi aberta uma issue de manutenção para ambos os casos e a previsão é que as correções sejam lançadas com o AppServer 19.3.1.8.