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 密钥。
这是我遇到的问题。
因此,我正在尝试使用 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 密钥。
这是我遇到的问题。