2012-01-14 6 views
1

を更新しながら、Herokuのアプリを破る:レール:AWS S3を追加しようとcarrierwave

それは本当に奇妙です。私は新しいアプリケーションをすばやく作成して実際にファイルをアップロードしましたが、ストレージを変更するのを忘れていました。私はストレージに変更を加えたとき:霧、この新しいアプリはgithub.com/MikeOnRails/s3を壊しました。

元の質問

私は破壊とAmazon S3は搬送波で動作するように取得する方法を把握しようと、新たなHerokuのアプリを作り続けます。

私は、キャリアウェーブgitハブページでいくつかの指示を見つけましたが、多分私は何かしています。キャリア。私は

(すなわちサイトが破損していない)の問題もなく私の環境変数を追加したHerokuのコンフィグ:S3_KEY = NOTREAL8844848L S3_SECRET = NOTREAL345566

を追加し、私は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 

に私はまた、ENV変数アップローダで

:aws_access_key_id  => 'ENV['S3_KEY']', 
    :aws_secret_access_key => 'ENV['S3_SECRET']', 

/image_up周りの単一引用符を入れてみましたloader.rb

私はそれが

でそれを格納するファイルのパスを必要とすることを想定し、すべてでこれを変更していない

storage :file 

storage :fog 

に注意、 in uploaders/image_uploader.rbを変更
def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

新しいコードをプッシュし、アプリケーションエラーが発生しました。誰も助けることができますか?

の(私は搬送波gitのハブにそれを見たので、私は自分のコードにハイフンを入れて。私はバケツを作成するとき、それは「米国標準」と言い、アマゾンコンソールで、注意してください。)

一部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= 
+0

以下のように何の問題も続かない、Uが「偽」= config.fog_publicを与えるべきだと思うが、それは大丈夫だ場合、私はまだそのほかの情報と同様に、あなたが他の宝石についての私を与えたと思いますあなたが作った他のプロジェクト – Leahcim

+0

https://github.com/dwilkie/carrierwave_directとhttps://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload(これはCarrierWaveと統合されていません。それはS3へのダイレクトアップローダーです) – iwasrobbed

+0

このソースコードはどこにでも(つまりgithub)ホストされていますか? – iwasrobbed

答えて

6

「米国標準」という名前のリージョン名は、実際には「霧で」と呼ばれます。

:region => 'US-Standard' 

:この変更にこの行を修正するには

:region => 'us-east-1' 

私はあなたの問題を解決すべきだと思います。

2

私はそれが原因だと思います:地域が正しくありません。この地域は、通常、「us-east-1」、「us-west-1」などの形式です。最初にあなたがいるものを確認し、変更して見ますか?

0

この問題を解決しましたか?私も同様の問題があり、Gemfile内の宝石の順序を変更した後に消えました。

3

私は

CarrierWave.configure do|config| 
config.fog_credentials = { 
    provider:    'AWS', 
    aws_access_key_id:  'AWS_ACCESS_KEY', 
    aws_secret_access_key: 'AWS_SECRET_KEY', 
    region:    'region-name', 
    host:     's3.example.com', 
    endpoint:    'https://s3.example.com' 
} 
config.fog_directory = 'name of the bucket' 
config.fog_public = 'false' 
config.fog_attributes = {'Cache-Control' => "max-age=#{365.to_i}" } 
end 
関連する問題