【问题标题】:Ruby/Rails: Instantiate File object from URLRuby/Rails:从 URL 实例化文件对象
【发布时间】:2015-10-07 01:54:15
【问题描述】:

我想知道如何在 Ruby 中从一个 URL(例如 http://www.example.com/foo.png)实例化一个 File 对象,然后可以将其传递给其他方法。我需要一个有效的File 对象,而不是TempFile。我在 Heroku 上运行 Rails 应用程序,所以理想情况下我不希望将文件保存到磁盘,因为我只需要在 HTTP 发布请求期间持久保存它。

谢谢!

【问题讨论】:

  • 您要求它是一个真正的文件对象并且不将其保存到磁盘听起来很矛盾。

标签: ruby-on-rails ruby heroku


【解决方案1】:

这就是你要找的吗?它将从 URL 打开一个文件并创建一个新的 ruby​​ File 类及其内容。

require 'open-uri'
file = File.new(open('http://www.example.com/foo.png'))

【讨论】:

  • 我接受了您的回答,因为它解决了我的核心问题,尽管我认为 Frederick Cheung 说得对,如果不写入磁盘可能无法创建 File 对象。我意识到我可以调用File.close 来删除文件,这间接解决了我的另一个要求,即在 POST 请求之外不保留文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多