Carrerwave 0.5.3 を使用していますが、画像コントローラーの Create メソッドで Picture.save を呼び出すと 404 エラーが発生します。lib/carrierwave/storage/s3.rb の指示に従って、初期化ファイル (config/initializers/carrierwave_fog.rb) に次のものがあります。
CarrierWave.configure do |config|
config.s3_access_key_id = "xxxxx"
config.s3_secret_access_key = "xxxxx"
config.s3_bucket = "mybucket" #already created in my S3 account
end
photo_uploader.rb には次のものがあります。
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :s3
def store_dir
"uploads" # already created in my s3 account
end
def cache_dir
"uploads/cache" #already created in my s3 account
end
end
正確なエラー:
Excon::Errors::NotFound in PicturesController#create
Expected(200) <=> Actual(404 Not Found)
request => {:expects=>200}
response => #<Excon::Response:0x00000104a72448 @body="", @headers={}, @status=404>
Carrierwave と s3 with heroku error undefined method `fog_credentials='で少し似た質問を見つけました 。しかし、私が今持っている方法で物事を設定すると、その場合は明らかにうまくいきました。残念ながら、私には合いませんでした。
バケットに写真を入れて、アクセス許可を公開に設定し、ブラウザー経由で写真にアクセスできるようにしました。そのため、AWS S3 側は機能しているようです。
次にどこに行くかわかりません。何か案は?