首先非常感谢您花时间阅读我的问题。谢谢!看来我在我的webapp上实现aws s3时遇到了麻烦。我有一个部署了ooku的ROR应用程序,我想允许用户将个人资料图片上传到他们的个人资料中。
我已经安装了imagemagick和paperclip来处理附件。然后有人告诉我,heroku不接受上传,我需要订阅aws-s3。这是有道理的。所以我注册了aws并将以下代码添加到我的项目中:
user.rb(model)
has_attached_file :avatar,
:styles => {:small => "70x70>"},
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style/:basename.:extension"
validates_attachment_size :avatar, :less_than => 1.megabytes
validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png']
s3.yml(文件位于config文件夹中)注意:所有这些存储桶都存在于我的aws-s3上
development:
bucket: my_avatar-dev
access_key_id: amazonaccesskey
secret_access_key: amazon_secret_access_key
test:
bucket: myapp_avatar-test
access_key_id: amazonaccesskey
secret_access_key: amazon_secret_access_key
production:
bucket: myapp_avatar-pro
access_key_id: amazonaccesskey
secret_access_key: amazon_secret_access_key
的Gemfile
gem 'aws-s3'
当我在开发环境(localhost)中运行应用程序时,一切正常运行......我检查了AWS,我的上传内容出现在那里;但是,当我将我的应用程序部署到heroku时,它会中断。要详细说明,该应用程序会加载登录屏幕,但只要用户登录,应用程序就会中断并重定向到错误500页:“我们很抱歉,但出现了问题。我们已收到有关此问题的通知我们很快就会看一下。“
当我隐藏以下代码(并替换:带有其他值的路径)并重新部署...应用程序加载时,但显然它缺少重定向到aws-s3所需的功能。
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style/:basename.:extension"
正如我所提到的,我对轨道很陌生......所以我不确定我做错了什么。我是否应该将s3.yml链接到其他地方,路线或什么?也许这是我在部署时需要做的事情?我要感谢能帮助我的人,感谢您的时间!