Lea*_*cim 1 ruby-on-rails heroku carrierwave
更新:
这真的很奇怪.我快速制作了一个新应用并实际上传了一个文件,但后来我意识到我忘了更改存储:文件存储:雾.当我对存储做出改变时:雾,这个新的应用程序打破了github.com/MikeOnRails/s3这个改变怎么会打破一个应用程序?
原始问题
我一直在打破并制作新的heroku应用程序试图弄清楚如何让亚马逊s3与载波一起工作.
我在运载波git中心页面上找到了一些说明,但也许我正在做点什么.载体.我添加了我的环境变量没有问题(即网站没有中断)
heroku config:添加S3_KEY = NOTREAL8844848L S3_SECRET = NOTREAL345566
然后我在initializers目录中创建了一个名为carrierwave_s3.rb的文件,并将此代码放入其中
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['S3_KEY'],
:aws_secret_access_key => ENV['S3_SECRET'],
:region => 'US-Standard'
}
config.fog_directory = 'm73test'
config.fog_host = 'https://m73test.s3.amazonaws.com'
config.fog_public = true
config.fog_attributes = {'Cache-Control' => 'max-age=315576000'}
end
Run Code Online (Sandbox Code Playgroud)
我还尝试在ENV变量周围加上单引号
:aws_access_key_id => 'ENV['S3_KEY']',
:aws_secret_access_key => 'ENV['S3_SECRET']',
Run Code Online (Sandbox Code Playgroud)
在uploaders/image_uploader.rb中
我变了
storage :file
Run Code Online (Sandbox Code Playgroud)
至
storage :fog
Run Code Online (Sandbox Code Playgroud)
注意, in uploaders/image_uploader.rb
我没有改变这一点,假设它需要一个文件路径来存储它
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
Run Code Online (Sandbox Code Playgroud)
然后我推了新代码,我收到了一个应用程序错误.有人可以帮忙吗?
(注意,在亚马逊控制台中,当我创建一个桶时,它会显示"美国标准".我将连字符放在我的代码中,因为我在载波wave git hub上看到了.)
Heroku日志的一部分告诉我发生了崩溃
4T23:32:03+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.3.6/lib/rack/builder.rb:51:in `initialize'
2012-01-14T23:32:03+00:00 app[web.1]: from /app/config.ru:1:in `new'
2012-01-14T23:32:03+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.3.6/lib/rack/server.rb:301:in `wrapped_app'
2012-01-14T23:32:03+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:49:in `tap'
2012-01-14T23:32:03+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:49:in `<top (required)>'
2012-01-14T23:32:03+00:00 app[web.1]: from script/rails:6:in `require'
2012-01-14T23:32:03+00:00 app[web.1]: from script/rails:6:in `<main>'
2012-01-14T23:32:03+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.3.6/lib/rack/server.rb:252:in `start'
2012-01-14T23:32:03+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.3.6/lib/rack/builder.rb:40:in `eval'
2012-01-14T23:32:03+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.3/lib/rails/commands.rb:54:in `block in <top (required)>'
2012-01-14T23:32:05+00:00 heroku[web.1]: State changed from starting to crashed
2012-01-14T23:32:05+00:00 heroku[web.1]: Process exited
2012-01-14T23:32:06+00:00 heroku[router]: Error H10 (App crashed) -> GET mmcarry.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-01-14T23:32:06+00:00 heroku[router]: Error H10 (App crashed) -> GET mmcarry.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=
2012-01-14T23:32:11+00:00 heroku[router]: Error H10 (App crashed) -> GET mmcarry.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-01-14T23:32:11+00:00 heroku[router]: Error H10 (App crashed) -> GET mmcarry.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=
Run Code Online (Sandbox Code Playgroud)
我认为你所遇到的问题是,区域名称虽然名为"美国标准",但实际上被称为"us-east-1".要解决此更改此行:
:region => 'US-Standard'
Run Code Online (Sandbox Code Playgroud)
至:
:region => 'us-east-1'
Run Code Online (Sandbox Code Playgroud)
我认为这应该可以解决你的问题.
归档时间: |
|
查看次数: |
1348 次 |
最近记录: |