我可以帮助您翻译以下这段关于IT技术的内容,涉及Ruby on Rails(Rails 3.2.14 和 ruby 1.9.3)应用程序上传 2 个文件到远程 SFTP 服务器的代码如下:
require 'net/sftp'
Rails.logger.info("Creating SFTP connection")
uri = URI.parse('sftp://'+ host)
Net::SFTP.start(uri.host,'user', :password=>'password',:port=>port) do |sftp|
Rails.logger.info("SFTP Connection created, uploading files.")
sftp.upload!("public/file1.txt", "./file1.txt")
Rails.logger.info("First file uploaded.")
sftp.upload!("file2.txt", "./file2.txt")
Rails.logger.info("Both files uploaded, terminating connection.")
end
Rails.logger.info("Connection terminated.")
两个文件都成功上传到远程服务器,但连接似乎没有关闭。当我执行这个函数时,一直出现错误,分析控制台后发现,“两个文件上传成功,终止连接。”的日志信息被记录了,但之后没有任何输出。我尝试使用
sftp.close(:handle)
sftp.close!(:handle)
#and
sftp.close_connection()
但是它们都没有起作用。有什么想法为什么会发生这种情况以及我如何纠正它?我正在通过单个实例的Engine Yard云服务器运行此项操作。
编辑 这是日志中的最后几行: 创建SFTP连接 SFTP连接已创建,上传文件。 第一个文件已上传。 两个文件已上传,终止连接。
之后就没有了。当使用“tail -f”命令查看我的日志时,日志到达了最后一行,并且应用程序重定向到内部服务器错误页面。