5

我正在嘗試使用CarrierWave和Amazon S3。當我嘗試上傳文件,通過一個rake任務,我得到這個錯誤:CarrierWave霧憑證,拒絕訪問

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') 
}) 

任何幫助深表感謝。謝謝!

回答

11

我意識到這與新的AWS Identity and Access Management(IAM)有關。我創建了一個新的IAM用戶,但我沒有給這個用戶正確的權限。在過去,只有一個用戶,並且該用戶具有管理員權限。現在您必須創建一個用戶,爲該用戶提供正確的權限,並使用該用戶的憑據。我希望這可以幫助別人。

+0

是的,當你介紹IAM時,它會使事情變得更加複雜(特別是與admin-everything默認憑據相比)。很高興你能弄清楚這一點。 – geemus

+0

我遇到了同樣的問題,並且無處不在尋找解決方案! 感謝分享 – mhz

+0

非常感謝。我一直在掙扎着這一段時間,這個評論拯救了我。 – marcamillion

10

這個答案讓我太...具體地說,它是在IAM>用戶>權限>附加用戶策略

當你第一次創建它得到下沒有「用戶策略」用戶的權限。「一旦我附加了一個用戶策略的工作。

+0

你是一個真正的兄弟!幫助並挽救一天。 – noname

+2

我知道這是舊的,但你的答案救了我幾個小時的戰鬥許可錯誤。爲未來迷失的靈魂提供更多細節......爲我解決這個問題的政策叫做「AmazonS3FullAccess」。謝謝! – ryanc