这是在Linux上。请没有Windows代码。 进步崔(11.6)。
我有一个在Linux上创建csv文件的过程。
一个单独的进程(程序)将提取这些CSV文件并将它们通过ftp下载到给定站点。
Progress 4GL(Openedge)中的ftp命令是什么?
答案 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).