如何使用SSIS在ftp目录之间传输文件?
我知道我可以删除并重新上传文件,但有更简单的方法吗?
我想将我完成的文件传输到“存档”文件夹。
答案 0 :(得分:4)
理论上的答案是你会使用命令RNFR(重命名)/ RNTO(重命名为)来重命名(移动)文件。在您的FTP会话中,您将发出类似
的命令ftp> rnfr /src/test/done.txt
ftp> rnto /src/test/Archive/done.txt
我说理论上我使用连接到z / OS ftp服务器的Windows命令行FTP客户端(system32 \ ftp.exe)进行测试会导致客户端指示RNFR / RNTO是Invalid command
Windows客户端 实现重命名方法,该方法在工作表下似乎发布了RNFR / RNTO。
简单的重命名看起来像
ftp> rename empty.txt e.txt
350 RNFR accepted. Please supply new name for RNTO.
250 /src/test/empty.txt renamed to /src/test/e.txt
然而,我无法让它移动到目录
下ftp> rename empty.txt Archive
350 RNFR accepted. Please supply new name for RNTO.
550 RNTO fails: /src/test/Archive is a directory.
ftp> rename empty.txt Archive/
350 RNFR accepted. Please supply new name for RNTO.
550 RNTO fails: /src/test/Archive/ is a directory.
ftp> rename empty.txt Archive/emp.txt
350 RNFR accepted. Please supply new name for RNTO.
550 Renaming attempt failed. Rc was 111
我不知道这是客户端实现还是服务器(或两者)的失败。或者,对于我的凭据,它可能只是permissions的不足。
无论您在命令行中使用重命名所需的步骤都将是您要发出的同一组命令。如果您使用的是内置FTP Task
,则会看到没有可用的重命名。您可能还会发现它是工具箱中最繁琐的任务之一。相反,我强烈支持使用Windows FTP client的命令文件或使用.NET FTP library