您好,我在 ruby on rails 中使用 amazon s3 配置了 carrierwave。在控制台中显示此消息
[fog][WARNING] 无法获取凭据:没有到主机的路由 - connect(2) -(Errno::EHOSTUNREACH)
我的应用程序加载滞后,但当我尝试上传文件时,应用程序挂起但文件已正确上传到存储桶中。
这是我的配置 s3。初始化程序。
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws' # required
config.fog_credentials = {
provider: 'AWS', # required
aws_access_key_id: 'AK******', # required unless using use_iam_profile
aws_secret_access_key: 'rKI********', # required unless using use_iam_profile
use_iam_profile: true, # optional, defaults to false
region: 'us-east-2' # optional, defaults to 'us-east-1'
}
config.fog_directory = '<name of bucked>' # required
config.fog_public = false # optional, defaults to true
config.fog_attributes = { cache_control: "public, max-age=#{365.days.to_i}" } # optional, defaults to {}
end
最佳答案
所以答案在 comment 中: 在 carrierwave/fog 的 config/initializers/carrirewave.rb(或 fog.rb)文件中“将 use_iam_profile
设置为 false”
CarrierWave.configure do |config|
config.fog_credentials {
provider: 'AWS',
aws_access_key_id: 'AK******',
aws_secret_access_key: 'rKI********',
use_iam_profile: false,
# ...
为什么??
use_iam_profile
是对 s3 存储桶进行身份验证的非常不同的方式。因此,如果您使用 aws_access_key_id
&& aws_secret_access_key
那么 use_iam_profile
应该是 false
关于amazon-web-services - [fog][WARNING] 无法获取凭据:没有到主机的路由 - connect(2) -(Errno::EHOSTUNREACH),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51373079/