我正在使用一个rails webapp,并尝试使用以下脚本将一个xml文件发送到sftp服务器:
Net::SSH.start(SFTP_HOST, sftp_user, {:port => SFTP_PORT, :password => sftp_password}) do |ssh|
ssh.sftp.connect do |sftp|
sftp.upload!( measurements_xml_file_path( meas ).to_s ) do |event, uploader, *args|
case even
when :open
puts "Starting upload"
when :finish
puts "Finished upload"
return true
end
end
end
但是,我总是得到一个错误"Errno::ENOTTY ... Inappropriate ioctl for device"
。任何帮助如何修复此错误?
1条答案
按热度按时间qcuzuvrc1#
IOCTL是设备输入和输出控制,这意味着错误来自发送到服务器的格式不正确或配置错误的命令。
这可能是注解中描述的PTY问题,因为服务器没有终端输出,SFTP试图显示进度条。
或者,这可能是由于向服务器发送了格式不正确的命令,因为
measurements_xml_file_path( meas ).to_s
的输出是未知的,可能是不正确的。SFTP有两个参数,一个用于主机上的输入文件,另一个用于服务器上的输出文件。class Net::SFTP