如何在Perl脚本中从FTP转换为SFTP?

Evi*_*ach 2 ftp perl sftp

我有一个现有的Perl脚本,它使用FTP对象将一些文件发送到AIX盒子.我刚刚发现我们的Linux机箱不支持FTP.它确实支持SFTP.我应该通过哪些步骤将脚本转换为使用SFTP?

Chr*_*anz 6

您当前的脚本可能正在使用Net :: FTP模块.您需要来自CPAN 的Net :: SFTP模块及其依赖项.您甚至可以使用现有脚本作为指南来开始新脚本.但逻辑是一样的.连接,发送和断开连接.


Axe*_*man 6

我其实做过类似的事情.但是,在需要时,准备通过SFTP运行任何当前的FTP脚本.

我创建了一个包装器对象,Net::SFTP其外观和行为就像一个Net::FTP对象.因此,所有调用都可以留在具有不同实现的位置.

我离开了这个:

my $client = Net::FTP->new( Host => 'ftp.somehost.com', ... );
Run Code Online (Sandbox Code Playgroud)

my $client = FTPClient->new( Host => 'ftp.somehost.com', ...
                           , secureFTP => 1 
                           ); 
Run Code Online (Sandbox Code Playgroud)

并且刚刚Net::FTP在我的新课程中实现了我正在使用的所有方法.Net::SFTP给出一些不同的回报,所以你必须实际包装函数而不是仅仅使用类似的东西Class::Delegator.