3

Carrierwavegemを使用してS3に画像をアップロードするHerokuのアプリケーションがあります。

私はcarrierwave.rbと呼ばれるイニシャライザーでs3構成を設定しました

CarrierWave.configure do |config|
  config.s3_access_key_id = 'XXXXXXXXXXXXXXXXXXXX'
  config.s3_secret_access_key = 'XXXXXXXXXXXXXXXXX'
  config.s3_bucket = 'XXXXX'
  config.storage = :s3
end

これはローカルマシンでの開発では正常に機能しますが、Herokuにデプロイすると、次のエラーが発生します

A Errno::EACCES occurred in events#update:

Permission denied - /app/public/uploads
/usr/ruby1.8.7/lib/ruby/1.8/fileutils.rb:243:in `mkdir'

明らかに、読み取り専用のherokuサーバーに書き込もうとしており、s3設定を取得していません。

herokuにファイルをs3に送信させる方法を知っている人はいますか?

4

2 に答える 2

7

CarrierWave wikkiから:

Heroku has a read-only filesystem, so uploads must be stored on S3 and cannot be cached in the public directory.

You can work around this by setting the cache_dir in your Uploader classes to the tmp directory:

https://github.com/jnicklas/carrierwave/wikiをチェックし、「CarrierWave on Heroku」というラベルの付いた下部のセクションまでスクロールして、これがどのように設定されているかを確認してください。これが誰かを助けることを願っています。

于 2011-04-29T13:33:45.177 に答える
6

このデモアプリを見たことがありますか。

特にここにアップロードされたクラス

于 2011-03-30T10:15:56.073 に答える