【问题标题】:Ruby read remote file to streamRuby 读取远程文件以进行流式传输
【发布时间】:2014-10-10 03:44:58
【问题描述】:

我需要在云存储服务器上保存一个远程文件,所以我必须将该文件读取到文件流中,我找到了这篇文章: Open an IO stream from a local file or url 答案是:

require 'open-uri'
file_contents = open('local-file.txt') { |f| f.read }
web_contents  = open('http://www.stackoverflow.com') {|f| f.read }

但是web_contents不对。然后我将此操作与自定义本地文件上传进行比较,格式为ASCII-8BIT,格式不一样。所以我怎样才能从远程文件中获取正确的流。

【问题讨论】:

    标签: ruby ruby-on-rails-3 iostream


    【解决方案1】:

    我觉得没问题:

    require 'open-uri'
    web_contents  = open('http://www.stackoverflow.com') {|f| f.read }
    
    out_file = File.expand_path("~/Desktop/out.html")
    
    File.open(out_file, "w") do |f|
      f.puts web_contents
    end
    

    【讨论】:

    • 性能怎么样?这是最好的方法吗?例如:如果我的文件是 500MB,例如
    • 如果你不想把它加载到内存中,那么你可以分块读取它(行?)。
    • 对不起,我还没用过。你有一些例子吗?或者可以在这里改善您的答案?谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 2016-12-06
    • 2015-08-18
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    相关资源
    最近更新 更多