2012-05-03 116 views
7

这里是我的情况。每次推到heroku,图像不显示,回形针

我正在使用回形针让用户上传图片。它做得很好,一切都很好。然后,我把它推到了heroku。对于该部分,我可以看到我刚刚由用户上传的所有图像。然而,每次做出新的提交并再次推向heroku时,我以前的所有图像都消失了。似乎没有文件了,不能加载它。

所以,在这里我认为: 是否每次我推送到heroku服务器,在本地的图像文件上传到heroku服务器?

我为我的问题做过研究,而且我没有真正理解他们对heroku的真实描述,我不知道这与我是同一个问题。

Heroku有一个只读文件系统。这意味着Paperclip无法将上传的文件保存到Heroku中的任何地方。

如果您希望能够将文件上载到托管在Heroku上的应用程序,则必须将文件作为二进制斑点存储在数据库中,或者必须使用单独的服务来存储文件。如果您正在寻找单独的服务,Paperclip内置了与Amazon S3集成的支持。

我发现亚马逊S3需要信用卡注册,如果我没有信用卡,那么我不能使用他们的服务?

任何详细建议和交代理解.Thanks你

回答

5

亚马逊是不是免费的设备,你必须给你的信用卡号来使用它。然而,你只支付你使用的东西,但它并不昂贵。例如,对于我的网站,上个月我为15Gb的存储支付了2.46美元,而我为16Gb的数据转移支付了1.90美元。

要使用回形针使用S3,您需要添加gem 'aws-s3'Gemfile

接下来,您需要添加config/s3.yml资产的凭证,例如:

production: 
    access_key_id: AAAAAAAAAAAAAAAAAA 
    secret_access_key: BBBBBBBBBBBBBBBBBBBBBBBBBBB 
    bucket: assets.my-bucket 

然后我有一个存储的模型我资产,例如:

class Asset 
    has_attached_file :asset, 
    :styles => { :thumb => "60x60#", :large => "700x330#"}, 
    :storage => :s3, 
    :s3_credentials => "#{Rails.root}/config/s3.yml", 
    :path => "/images/:id/:style.:extension" 
    validates_attachment_content_type :asset, :content_type => ['image/gif', 'image/jpeg', 'image/png', 'image/x-ms-bmp'] 
end 

我希望它能帮助

+0

是的,我知道这件事,你能提供更多关于我面临的问题的问题吗? izit它必须解决使用另一种服务,如亚马逊s3? –

+0

你可以使用你想要的观看者而不是S3,但是你不能在heroku上上传你的资产。因此,您可以使用专用服务器或其他远程存储系统,但您可能需要为此付费。 –

+0

oic ...这意味着每次我推送到heroku,我上传到heroku服务器上的图像会受到影响? –