2011-03-30 39 views
3

我在Heroku上有一個應用程序,它使用Carrierwave gem將圖像上傳到S3。Heroku和carrierwave不加載我的s3配置

我已經設置了S3配置在被稱爲carrierwave.rb

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?

回答

6

你看過this演示程序。

尤其是上傳類here

+0

不知道哪條線固定它,但它的工作原理,謝謝 – sk87 2011-04-01 08:08:51

+1

這兩行解決了它:https://github.com/trevorturk/carrierwave-heroku/blob/master/config/initializers/carrierwave.rb#L2 – 2011-06-21 09:22:23

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在Heroku」看他們如何設置此底部。希望這可以幫助某人。

相關問題