2010-07-20 81 views
3

我這行..如何將「File.open」翻譯爲S3兼容?

@organization.search_image = File.open(@photo.photo.path(:original)) 

除的尋找的東西的地方,和我所有的照片都在S3現在。我如何將它翻譯成在S3上打開文件?

回答

0

您有想到兩個選項:

  1. 使用S3 Ruby bindings並訪問使用S3提供的抽象數據。
  2. 繼續使用文件系統抽象,但將S3綁定到使用FUSE的本地代理文件系統,該文件系統可用於* nix/OSX(但據我所知不適用於Windows)使此方法不太適用。這可能比選項1效率低。
+0

雖然S3的Ruby綁定工作,我似乎無法將其轉換成我可以在我的本地框中使用的東西,讓我們重新發回備份到服務器。我發現了Right_Aws,併爲此寫了一個腳本,但它不處理寫入並重新添加到服務器。 – Trip 2010-07-21 18:22:56

1

我認爲你應該做的是在S3中下載/流式傳輸圖像,並將其寫入新文件,然後使用新文件。

open('newpic.png', 'w') do |file| 
    S3Object.stream('pic.png', 'bucket_name') do |chunk| 
     file.write chunk 
    end 
end 

#Write the streamed file to newpic.png then use newpic.png.