亚马逊 S3 - 导轨 3 载波-雾-S3 错误:预期(200) <=> 实际(404 未找到)



我正在使用家乐波 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>

我在这里发现了一个稍微相似的问题 载波和 s3 与 heroku 错误未定义的方法'fog_credentials=' . 但是在这种情况下,按照我现在的方式设置显然有效。 不幸的是,它不适合我。

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

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

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

确保您的文件名经过清理,并且不包含空格或斜杠等无效字符。要清理字符串,可以对其调用 gsub 方法。以下方法调用将清理文件以上传到S3,谷歌云存储等。

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

相关内容

  • 没有找到相关文章

最新更新