【发布时间】:2020-08-04 21:32:46
【问题描述】:
我需要在 Perl 中使用 SFTP(版本 3)传输文件。在传输文件时,我需要将传输模式设置为 ASCII。
有人可以确认一下,是否可以使用任何 Perl 模块 (Net::SFTP/Net::SFTP::Foreign/any)?
【问题讨论】:
我需要在 Perl 中使用 SFTP(版本 3)传输文件。在传输文件时,我需要将传输模式设置为 ASCII。
有人可以确认一下,是否可以使用任何 Perl 模块 (Net::SFTP/Net::SFTP::Foreign/any)?
【问题讨论】:
$sftp->put($local_from, $remote_to, conversion => 'unix2dos');
【讨论】:
SFTP 版本 3 仅支持二进制传输 :)
【讨论】:
在 SFTP 版本 3 中,只有二进制模式。
所以如果一个程序想要使用ASCII/文本模式,它必须知道/猜测目标系统文本文件格式,在上传之前转换文件/内容,然后上传转换后的文件/内容(在“二进制”模式)。虽然一些 SFTP 客户端具有内置的功能,但 Perl Net::SFTP 没有。您是否必须自己转换文件/内容,然后才能将其上传到 Net::SFTP。
【讨论】:
感谢大家的时间和支持!!!以下是我针对给定要求申请的解决方案。
Step1:使用NET::SFTP::Foreign模块连接服务器:
$sftp_file = Net::SFTP::Foreign->new($host, $user);.
Step2:检查目标服务器类型(unix/windows)。
$sftp_file->$direction("$src", "$trgt", conversion=>'unix2dos')。此方法将进行动态数据转换。
【讨论】: