CarrierWave Fog凭证,访问被拒绝

Tyl*_*ler 5 ruby-on-rails amazon-s3 amazon-web-services carrierwave fog

我正在尝试将CarrierWave与Amazon S3一起使用.当我尝试通过rake任务上传文件时,我收到此错误:

rake aborted!
Expected(200) <=> Actual(403 Forbidden)
Run Code Online (Sandbox Code Playgroud)

我的CarrierWave初始化程序如下所示:

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider: 'AWS',
    aws_access_key_id: MY_AWS_ACCESS_KEY_ID,
    aws_secret_access_key: MY_AWS_SECRET_ACCESS_KEY
  }
  config.fog_directory = MY_BUCKET
  config.fog_public = true
end
Run Code Online (Sandbox Code Playgroud)

在我调试时,我确实设置了真实的,硬编码的密钥/机密/桶值.

rake任务看起来像这样,并且当我将CarrierWave上传器设置为本地上载时成功storage: file:

Photo.create({
  image: File.new('lib/dummy_files/image.jpg')
})
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.谢谢!

Tyl*_*ler 11

我意识到这与新的AWS身份和访问管理(IAM)有关.我创建了一个新的IAM用户,但我没有给该用户正确的权限.过去,只有一个用户,该用户具有管理员权限.现在,您必须创建用户,为该用户授予正确的权限,并使用该用户的凭据.我希望这可以帮助别人.


poc*_*cus 10

这个答案对我有帮助......具体来说,它在IAM>用户>权限>附加用户策略下

首次创建用户时,"权限"下没有"用户政策".一旦我附加了用户策略,事情就有效了.

  • 我知道这已经过时了,但是经过数小时的战斗许可错误后,你的回答得到了解救.为未来失去的灵魂提供更多细节...为我修复它的政策被称为"AmazonS3FullAccess".谢谢! (2认同)