1
我試圖在我的Rails應用程序使用Carrierwave與Amazon S3,我不斷收到錯誤Carrierwave上傳與Amazon S3 - 403 Forbidden錯誤
"Excon::Errors::Forbidden (Expected(200) <=> Actual(403 Forbidden)."
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.
我也收到警告
"[WARNING] fog: the specified s3 bucket name() is not a valid dns name, which will negatively impact performance. For details see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html"
配置/初始化/ carrierwave.rb:
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"],
aws_secret_access_key: ENV["AWS_ACCESS_KEY"]
}
config.fog_directory = ENV["AWS_BUCKET"]
end
我的存儲桶名稱是「buildinprogress」
我再次檢查了我的存取密鑰ID和訪問密鑰是正確的。
我該如何解決這個錯誤?
我發現如果我硬編碼carrierewave.rb文件中的存儲桶名稱,它可以工作,但是當我將桶名稱定義爲環境變量時,它不起作用。 – scientiffic
那不可能;那麼你可能會弄亂一些ENV變量。在初始化文件中執行'puts ENV [「AWS_BUCKET」]。inspect'並檢查是否打印了正確的桶名稱... – severin