我需要在Perl中使用SFTP(版本3)传输文件。传输文件时,我需要将传输模式设置为ASCII。
有人可以确认,是否可以使用任何Perl模块(Net::SFTP
/ Net::SFTP::Foreign
/ any)?
答案 0 :(得分:2)
$sftp->put($local_from, $remote_to, conversion => 'unix2dos');
答案 1 :(得分:1)
SFTP版本3仅支持二进制传输:)
答案 2 :(得分:1)
在SFTP版本3中,只有二进制模式。
因此,如果程序想要使用ASCII /文本模式,它必须知道/猜测目标系统文本文件格式,在上载之前转换文件/内容,并上传转换后的文件/内容(在&#34中) ;二进制"模式)。虽然有些SFTP客户端具有内置功能,但Perl Net :: SFTP却没有。在将文件/内容传递给Net :: SFTP之前,您是否必须自己转换文件/内容。
答案 3 :(得分:1)
谢谢大家的时间和支持!以下是我已针对给定要求申请的解决方案。
步骤1:使用NET :: SFTP :: Foreign模块连接服务器。 $ sftp_file = Net :: SFTP :: Foreign-> new($ host,$ user);
步骤2:检查目标服务器类型(unix / windows) 如果Unix:我不需要转换,因为我从Unix系统发送文件。 如果是Windows,请执行UNIX2DOS: $ sftp_file-> $ direction(“$ src”,“$ trgt”,conversion =>'unix2dos')。
此方法将进行即时数据转换。
此致 埃杜