如何在Heroku上处理Rails应用程序(使用回形针)的用户上传照片文件?

时间:2012-01-26 03:23:52

标签: ruby-on-rails image heroku paperclip

所以我正在创建一个允许用户创建项目的Rails应用程序,每个项目都有一个图像附件,通过Paperclip gem处理。默认情况下,Paperclip gem将照片保存为原始(和缩略图)形式的公共文件夹。

考虑到照片可能相当大,我可以看到它在存储空间方面如何变得无法控制。

我的问题:

  

1)Heroku允许我为公共文件夹中的图像保留多少空间?

     

2)如果Heroku只允许你在这个文件夹中保存有限数量的数据(我确信它会这样做),我如何处理可能包含大量图像的网站的照片存储?可能远程?压缩? (具体情况会很好,因为我对图像存储完全不熟悉。)

2 个答案:

答案 0 :(得分:3)

Heroku为您的应用提供了只读文件系统。使用Amazon S3存储上传的图像。 Paperclip has great support for S3。看看这个Heroku guide

答案 1 :(得分:0)

正如克里斯所说,你会想要使用像S3这样的第三方服务,如果你最终使用了Paperclip,那么你的模型中最终会有类似这样的例子。

has_attached_file :photo,
        :styles => { :thumb=> "100x100", :small  => "300x300" },
        :storage => :s3,
        :s3_credentials => "#{Rails.root.to_s}/config/s3.yml",
        :path => "/:id/:style/:filename"

在您的配置目录中,您将拥有一个s3.yml凭证文件,如下所示:

development:
   bucket: blahblah
   access_key_id: sfoi40j8elkfv08hwo
   secret_access_key: DJyWuRtsfoi40j8elkfv08hwos0m8qt

production:
   bucket: blahblah
   access_key_id: sfoi40j8elkfv08hwo
   secret_access_key: DJyWusfoi40j8elkfv08hwos0m8qt