我正在使用paperclip让用户上传图片.它做得很好,一切都很好.然后,我把它推到了heroku.对于妈妈,我可以看到用户上传的所有图片.但是,每次进行新的提交并再次推送到heroku时,我之前的所有图像都消失了.好像没有文件了,无法加载它.
那么,这就是我的想法:
是不是每次我推送到heroku服务器时,本地的图像文件都被上传到heroku服务器?
我为它研究了我的问题,我真的不明白他们对heroku的实际说法,我不知道是不是我的问题.
Heroku has a read-only filesystem. That means Paperclip cannot save uploaded files to any place within Heroku.
If you would like to be able to upload files to an application hosted on Heroku,then you must either store the files as binary blobs within your database or you must use a separate service to store the files. If you are looking for a separate service,Paperclip has built-in support for integrating with Amazon S3.
我发现亚马逊S3需要信用卡才能注册,如果我没有信用卡,那我就不能使用他们的服务了?
任何细节建议和解释都表示赞赏.谢谢
解决方法
要将S3与paperclip一起使用,您需要将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
我希望它有所帮助