Amazon S3 - 载波图像上传

Amazon S3 - Carrierwave Image Upload

因此,我正在尝试使用 Fog 从 Rails API 将图像上传到 S3。

每当我尝试上传图片时,我都会得到:

  Excon::Errors::Forbidden (Expected(200) <=> Actual(403 Forbidden)
  (...)
  All access to this object has been disabled

它正在开发中,但是一旦我切换到生产中,我就会收到上面的错误。我正在使用我创建的用户的密钥,该用户设置了完全管理权限。

我的carrierwave.rb: 需要 'carrierwave'

CarrierWave.configure do |config|

  config.fog_credentials = {
    :provider               => "AWS",
    :region                 => "us-east-1",
    :aws_access_key_id      => ENV['AWS_ACCESS_KEY_ID'],
    :aws_secret_access_key  => ENV['AWS_SECRET_ACCESS_KEY']
  }

  if Rails.env.production?  
    config.cache_dir = "#{Rails.root}/tmp/uploads"
  end

  config.fog_directory  = ENV['AWS_BUCKET']
  config.fog_public     = false
end

有什么想法吗?提前致谢! :)

在我的例子中,问题与 Heroku 上的 ENV 有关。 我忘了添加 REGION 变量。

因此,值得检查一下您是否正确设置了所有变量。

始终确保您拥有正确的 ENV 变量和正确的 S3 密钥。

这是我遇到的问题。