如何使用 Perl 在 SFTP(版本 3)中将传输模式设置为 ASCII
How to set the transfer mode to ASCII in SFTP (version 3) using Perl
我需要在 Perl 中使用 SFTP(版本 3)传输文件。在传输文件时,我需要将传输模式设置为 ASCII。
有人可以确认一下,是否可以使用任何 Perl 模块 (Net::SFTP
/Net::SFTP::Foreign
/any)?
SFTP 版本 3 仅支持二进制传输:)
在 SFTP 版本 3 中,只有二进制模式。
所以如果一个程序要使用ASCII/text模式,它必须know/guess目标系统文本文件格式,在上传前转换file/contents,上传转换后的file/contents(在 "binary" 模式下)。虽然一些 SFTP 客户端具有构建它的功能,但 Perl Net::SFTP 没有。在上传到 Net::SFTP.
之前,您是否必须自己转换 file/contents
$sftp->put($local_from, $remote_to, conversion => 'unix2dos');
感谢大家的时间和支持!!!以下是我为给定要求申请的解决方案。
第一步:使用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')
.
此方法将进行动态数据转换。
我需要在 Perl 中使用 SFTP(版本 3)传输文件。在传输文件时,我需要将传输模式设置为 ASCII。
有人可以确认一下,是否可以使用任何 Perl 模块 (Net::SFTP
/Net::SFTP::Foreign
/any)?
SFTP 版本 3 仅支持二进制传输:)
在 SFTP 版本 3 中,只有二进制模式。
所以如果一个程序要使用ASCII/text模式,它必须know/guess目标系统文本文件格式,在上传前转换file/contents,上传转换后的file/contents(在 "binary" 模式下)。虽然一些 SFTP 客户端具有构建它的功能,但 Perl Net::SFTP 没有。在上传到 Net::SFTP.
之前,您是否必须自己转换 file/contents$sftp->put($local_from, $remote_to, conversion => 'unix2dos');
感谢大家的时间和支持!!!以下是我为给定要求申请的解决方案。
第一步:使用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')
.
此方法将进行动态数据转换。