【问题标题】:Rails 3 Carrierwave-Fog-S3 error: Expected(200) <=> Actual(404 Not Found)Rails 3 Carrierwave-Fog-S3 错误:预期(200)<=> 实际(404 未找到)
【发布时间】:2015-12-27 14:22:21
【问题描述】:

我正在使用 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 and s3 with heroku error undefined method `fog_credentials=' 发现了一个稍微相似的问题。但是按照我现在的方式进行设置显然在这种情况下有效。不幸的是,它不适合我。

我已经在我的存储桶中放了一张图片并将权限设置为公开,并且可以通过浏览器访问该图片。因此,AWS S3 方面的事情似乎正在发挥作用。

不知道下一步该去哪里。有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    嗯,我睡了一晚,第二天回来,一切都很好。不知道为什么它突然开始工作。

    【讨论】:

    • 我今天遇到了这个错误。这是由于存储桶名称错误而发生的。同样在修复名称后需要重新启动服务器。 :)
    【解决方案2】:

    确保您的文件名经过净化,并且不包含空格或斜杠等无效字符。 要清理字符串,您可以在其上调用 gsub 方法。以下方法调用将清理文件以上传到 S3、Google Cloud Storage 等。

    "Invalid\ file *& | | name.png".gsub(/[^0-9A-z.\-]/, '_')
    

    【讨论】:

      猜你喜欢
      • 2017-12-25
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多