2014-04-18 34 views
3

我試圖從一個非常糟糕的雲服務器上下載我們的所有信息。這些文件是圖像和PDF文件。我的問題是,我不知道如何將我從read_object調用中接收到的blob數據寫入到我的本地文件系統的文件中。如何使用ruby將blob數據寫入文件?

我知道我可以使用ImageMagick/RMagick從blob創建圖像,但我寧願跳過此步驟直接將數據寫入文件。我不想擔心ImageMagick會與每一個解碼代理編譯在一起。

我並沒有在Google上看到很多關於這方面的信息,這是不是經常用Ruby做的事情?

+1

我覺得你必須使用二進制寫模式,'b'打開文件時,然後只寫入它。不是100%確定。應該在IO文檔中的某處。 –

回答

3

假設該文件不存在,或者要覆蓋其目前的內容,你只需要打開該文件模式wbw寫,b二進制 - 在b可能不是嚴格必要在所有系統上) 。如果您嘗試附加到文件,請改爲使用ab。有關模式的更多信息,請參閱this page

File.open(filename, 'wb') do |f| 
    f.write blob 
end