いつもお世話になっております。
RubyにてFTP接続を行いファイルリスト取得及び、操作を行うと無限に待機されてしまいます。
こちらにどのような環境下で無限待機が発生するか記載されておりますが解決方法が記載されておりません。
Subject: [ruby-list:48198] Re: Net::FTPの挙動について
色々調べたのですが、かなり手詰まりです。どなたかアドバイス頂けないでしょうか?
###コード
# -*- encoding: utf-8 -*- require 'net/ftp' class Timesale def gold ftp = Net::FTP.new ftp.passive = false ftp.connect("ホスト","ポート") ftp.login('ID','PASSWORDS') ftp.binary = false ftp.chdir 'LP' #下記の2つコードを実行すると無限待ちが発生します。確認の為コメントアウトし交互に実行しました。 #ftp.get("/file.js","/Download/file.js") puts p ftp.ls ftp.quit end end Timesale.new.gold
###ログ
無限待ちが発生した際にキャンセルすると下記のような結果は出力されます。transfercmd中にaccept待ちをしてるのではないかと思います。
^C/usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/net/ftp.rb:446:in `accept': Interrupt from /usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/net/ftp.rb:446:in `transfercmd' from /usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/net/ftp.rb:528:in `block (2 levels) in retrlines' from /usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/net/ftp.rb:214:in `with_binary' from /usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/net/ftp.rb:526:in `block in retrlines' from /usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' from /usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/net/ftp.rb:525:in `retrlines' from /usr/local/rbenv/versions/2.3.1/lib/ruby/2.3.0/net/ftp.rb:777:in `list' from timesale.rb:25:in `gold' from timesale.rb:30:in `<main>'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。