【问题标题】:Heroku and carrierwave don't load my s3 configurationHeroku 和carrierwave 不加载我的s3 配置
【发布时间】:2011-07-25 22:12:57
【问题描述】:

我在 Heroku 上有一个应用程序,它使用 Carrierwave gem 将图像上传到 S3。

我已经在一个名为 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?

【问题讨论】:

    标签: ruby-on-rails-3 amazon-s3 heroku carrierwave


    【解决方案1】:

    来自 CarrierWave 维基:

    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 并滚动到标有“Heroku 上的 CarrierWave”的底部部分,看看他们是如何设置的。希望这对某人有所帮助。

    【讨论】:

      【解决方案2】:

      你看过this演示应用吗?

      特别是上传的类here

      【讨论】:

      猜你喜欢
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2012-03-21
      • 2014-03-14
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多