amazon-web-services - [雾] [警告] 无法获取凭据:没有到主机的路由 - 连接 (2) -(Errno::EHOSTUNREACH)
问题描述
嗨,我在 ruby on rails 中用亚马逊 s3 配置了carrierwave。在控制台中向我显示此消息
[雾] [警告] 无法获取凭据:没有到主机的路由 - 连接 (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
解决方案
所以答案在评论use_iam_profile
中:在carrierwave/fog的config/initializers/carrirewave.rb(或fog.rb)文件中“设置 为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
推荐阅读
- dart - 子字符串直到字符串中第一次出现逗号
- html - 如何使用 vbscript 更改 div 类(html)
- python - 插入失败“OperationalError:没有这样的列”
- c# - 长的异步等待链会导致大量内存消耗吗?(理论上)
- java - 如何修复布局管理
- splunk - 如何配置 Splunk 转发器以从 stdout/stderr 而不是从文件中收集数据?
- c# - 使用 sql 的 Gridview 搜索/过滤
- html - 如何根据用户选择的值动态更改初始表单值?姜戈
- reactjs - 如何使用 flow-typed 类型化 Redux store?
- node.js - mongoose 创建和更新 _ nodejs mongoose