我正在尝试将CarrierWave与Amazon S3一起使用。当我尝试通过rake任务上传文件时,我收到此错误:
rake aborted!
Expected(200) <=> Actual(403 Forbidden)
我的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
在我调试时,我确实设置了真实的,硬编码的密钥/机密/存储桶值。
rake任务看起来像这样,并且当我将CarrierWave上传器设置为使用storage: file
本地上传时成功:
Photo.create({
image: File.new('lib/dummy_files/image.jpg')
})
非常感谢任何帮助。谢谢!
答案 0 :(得分:11)
我意识到这与新的AWS身份和访问管理(IAM)有关。我创建了一个新的IAM用户,但我没有给该用户正确的权限。过去,只有一个用户,该用户具有管理员权限。现在,您必须创建用户,为该用户授予正确的权限,并使用该用户的凭据。我希望这有助于某人。
答案 1 :(得分:10)
这个答案对我有帮助......具体来说,它在IAM&gt;下;用户&gt;权限&gt;附加用户政策
当您第一次创建用户时,它不会获得用户政策&#39;根据&#39;权限。&#39;一旦我附上了用户政策,事情就会奏效。
答案 2 :(得分:1)