如何在Ruby中设置FTP会话空闲超时时间?

5

我有一个Ruby线程,首先连接到FTP服务器,然后上传成千上万个文件。由于某些连接问题,Ruby线程经常挂起。因此,我想为ftp空闲设置超时。

帖子Ruby Net::FTP Timeout Threads建议使用Timeout模块:

begin
  Timeout.timeout(10) do
    // connect to FTP and upload
  end
rescue Timeout::Error
    ...
end

这种方法无法解决我的问题,因为超时时间是针对整个计算块的,而不是从FTP会话处于空闲/不活动状态开始的超时时间。

那我该怎么办?

1个回答

0

尝试像这样做

transferred = 0
buffersize = 1024
filesize = File.size(file)
ftp.putbinaryfile(file, "/private/transfer/#{File.basename(file)}", buffersize) { |data|
  raise "no data sent" if data.size == 0 or data.size < buffersize
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接