2015-10-06 23 views
0

我想知道如何在URL中實例化一個在Ruby中的File對象(例如http://www.example.com/foo.png),然後可以將它傳遞給其他方法。我需要有一個有效的File對象,而不是TempFile。我在Heroku上運行Rails應用程序,所以理想情況下我不希望將文件保存到磁盤,因爲我只需要在HTTP POST請求持續時間內保留該文件。Ruby/Rails:從URL實例化文件對象

謝謝!

+1

你對它的要求是一個真正的文件對象,並且它不會被保存到磁盤上,聲音是矛盾的。 –

回答

1

這是你在找什麼?它會從一個URL打開一個文件,並創建一個新的ruby File類的內容。

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

我接受了你的答案,因爲它解決了我的核心問題,儘管我認爲Frederick Cheung說得對,如果不寫入磁盤就不可能創建一個'File'對象。我意識到我可以調用'File.close'來刪除文件,這間接地解決了我不需要超出POST請求持久化文件的其他要求。 – ACIDSTEALTH