rubyのNet :: FTPライブラリからファイルをダウンロード中に状態を更新する方法を知っている人はいますか?私はリモートFTPサーバからファイルをダウンロードする際に残っているパーセンテージの進行状況を示すWebインターフェイスを実装しようとしています。今後の参考のためにRuby Net :: FTPプログレスバー
10
A
答えて
34
- 私は解決策につまずい:私は100ドット進行に少しノイズが少ない進歩のための@ smnirvenの優れたアプローチに基づいて構築
filesize = ftp.size(filename)
transferred = 0
p "Beginning download, file size: #{filesize}"
ftp.getbinaryfile(filename, "#{SOURCE_IMPORT_DIRECTORY}/#{filename}", 1024) { |data|
transferred += data.size
percent_finished = ((transferred).to_f/filesize.to_f)*100
p "#{percent_finished.round}% complete"
}
ftp.close
0
:
filesize = ftp.size(filename)
transferred = 0
notified = false
ftp.getbinaryfile(filename, full_local_path, 1024) do |data|
transferred += data.size
percent_finished = (((transferred).to_f/filesize.to_f)*100)
if percent_finished.to_s.include?('.0')
print "." if notified == false
notified = true
else
notified = false
end
end
ftp.close
出力:
を
4
@smnirvenと@theoretickの回答を拡張して固定siを作成しました
def getprogress(ftp,file,local_path)
transferred = 0
filesize = ftp.size(file)
ftp.get(file, local_path, 1024) do |data|
transferred += data.size
percent = ((transferred.to_f/filesize.to_f)*100).to_i
finished = ((transferred.to_f/filesize.to_f)*30).to_i
not_finished = 30 - finished
print "\r"
print "#{"%3i" % percent}%"
print "["
finished.downto(1) { |n| print "=" }
print ">"
not_finished.downto(1) { |n| print " " }
print "]"
end
print "\n"
end
出力に含ま:この例でのキーがプリント「である
Executing gather for: ruby
Going to public ftp - ftp.ruby-lang.org
File list for /pub/ruby/2.0/:
ruby-2.0.0-p647.tar.gz
Downloading: ruby-2.0.0-p647.tar.gz
100%[==============================>]
\それはあなたがどのように完全な進展がある視覚的なアイデアを持つことができるように完了するといっぱいになるぜプログレスバーr "を使用して行を書き換えます。
関連する問題
- 1. Ruby Net :: FTPタイムアウトスレッド
- 2. Ruby 1.9 + Net :: FTP => Encoding :: UndefinedConversionError
- 3. Ruby FTP sendcmdエラー
- 4. Ruby FTP 504エラー
- 5. .Net FTPライブラリ
- 6. .NET用のFTPクライアントクラス
- 7. FTP Mock for .NETフレームワーク
- 8. Net :: FTP :: dir_hashref()のバグ?
- 9. ruby sinatraでftpからcsvファイルをダウンロード
- 10. Perl Net :: FTPのエラー理由
- 11. pythonでftpをアップロードするためのプログレスバーを表示
- 12. Cでプログレスバーを使用してFTPサーバーにファイルをアップロード
- 13. RubyスクリプトでNet :: FTPを使用して、リモートFTPサーバー上のファイルを同じFTPサーバー上のディレクトリに移動する方法
- 14. Ruby FTPフォルダからファイルを分ける
- 15. Ubuntu用のRuby FTPライブラリがありますか?
- 16. PHPまたはRUBYのプログレスバー付きの抽出zip
- 17. rubyを使ってftpディレクトリをアップロードするには
- 18. perlでファイルをアップロード中Net :: FTP module
- 19. .NETオープンソースFTP SDK/APIのご提案
- 20. OSS .Net FTP(クライアント)とTLSとSSL?
- 21. .net 2.0でFTPサーバーに接続
- 22. ルビーネット/ ftpのコードエラーが原因
- 23. Ruby、Tor、Net :: HTTP :: Proxy
- 24. rails Net :: FTP mkdirツリーディレクトリは動作しません
- 25. Windows XPでRuby FTPが極端に遅い
- 26. プログレスバー
- 27. ruby net/ssh channelが死ぬ?
- 28. Ruby Net :: HTTP 400 Bad Request
- 29. Ruby NET :: SCPワイルドカードを含む
- 30. Ruby - net/http - リダイレクトの後
これは古いスレッドですが、あなた自身が答えを与えることができます。よくやった。 –
私は同意します、この例のおかげで – chrisan