使用Progress 4gl代码对FTP文件进行FTP的最简单方法是什么?

时间:2019-09-09 10:58:51

标签: openedge progress-4gl

这是在Linux上。请没有Windows代码。 进步崔(11.6)。

我有一个在Linux上创建csv文件的过程。

一个单独的进程(程序)将提取这些CSV文件并将它们通过ftp下载到给定站点。

Progress 4GL(Openedge)中的ftp命令是什么?

2 个答案:

答案 0 :(得分:5)

最简单的解决方案是使用os-command和curl。

类似的东西:

data-*

首先,您(或您要向其发送文件的一方)真的不应该使用FTP。这是非常不安全的。 SCP / SFTP是一个更好的选择。

答案 1 :(得分:-1)

我设法为sftp编写了代码。我还尝试了汤姆提供的代码ftp。

如果有人感兴趣,这里是代码(serverName,remoteFile,usrName,usrPass的替代信息)

/******************/
/* Ftpbob         */
/* ftp command    */
/* Author: 4gl    */
/******************/
/* upload using sftp (1)
curl  -k "sftp://83.46.38.23:22/CurlPutTest/" --user "testuser:testpassword" -T "C:\test\testfile.xml" --ftp-create-dirs
*/
/* upload using ftp (2)
os-command value(substitute('curl -p --insecure  "ftp://&1:&2" --user "&3:&4" -T "&5" --ftp-create-dirs', serverName, remoteFile, usrName, usrPass, localFile )).
*/

        Def var lvCommand  as char no-undo.
        Def var serverName as char no-undo initial "serv1". /* 92.25.04.69 */
        Def var usrName    as char no-undo initial "bob".
        Def var usrPass    as char no-undo initial "sumpass1".
        Def var remoteFile as char no-undo initial "/remoteDir/abc.csv".
        Def var localFile  as char no-undo initial "/localDir/123.csv".

        update
          serverName format "x(25)"
          usrName    format "x(25)"
          usrPass    format "x(25)"
          remoteFile format "x(25)"
          localFile  format "x(25)"
        with 1 col side-labels.

        /************************* FTP ***********************
        lvCommand = substitute
        ('curl -p --insecure "ftp://&1:&2" --user "&3:&4" -T "&5" --ftp-create-dirs',
              trim(serverName), 
              trim(remoteFile), 
              trim(usrName), 
              trim(usrPass),
              trim(localFile)
            ). 
        ******************************************************/

        /*** SFTP ***/
        lvCommand = substitute
        ('curl -k "sftp://&1:&2" --user "&3:&4" -T "&5" --ftp-create-dirs',
              trim(serverName), 
              trim(remoteFile), 
              trim(usrName), 
              trim(usrPass),
              trim(localFile)
            ). 

        message lvCommand
        view-as alert-box.

        os-command value(lvCommand).