2010-07-20 84 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.