【发布时间】:2015-04-29 15:07:17
【问题描述】:
使用带有 AWS 实例配置文件的 Fog,3 天后我的 s3 网址不再工作。我得到了新的 url,但从 AWS 返回的错误是 The provided token has expired。重新启动应用程序可以让一切再次正常运行,但除了来自 AWS 的错误之外,没有其他错误存在。
我已经读到切换到密钥应该可以解决我的问题,但我希望保留我的 iam 个人资料。有人遇到过这种情况吗?
我的 Carrierwave 配置如下,我使用的是 Carrierwave 0.9.0 版和 Fog 1.28.0
CarrierWave.configure do |config|
fog_credentials = {
:provider => 'AWS',
:region => 'us-east-1',
:path_style => true,
:host => 's3-external-1.amazonaws.com' # routes all requests to Northern Virginia datacenter
}
if defined?(Settings.use_iam_profile) && Settings.use_iam_profile
fog_credentials[:use_iam_profile] = true
else
fog_credentials[:aws_access_key_id] = Settings.s3_access_key
fog_credentials[:aws_secret_access_key] = Settings.s3_secret_key
end
config.fog_credentials = fog_credentials
config.fog_directory = Settings.s3_bucket_name # required
config.fog_public = false # optional, defaults to true
config.root = File.join(Rails.root, 'private')
end
【问题讨论】:
-
您能告诉我们您的载波配置吗?我一直在使用带有 IAM 配置文件的carrierwave,没有任何问题。您使用的是哪个版本的雾和载波?
-
@makhan 我用该信息更新了问题
-
没有什么明显的想法。你有
ntp在这台服务器上运行吗?如果问题仅在于阅读,是否可以选择使文件夹公开可读? -
@makhan 我们无法公开这些文件夹,因为它们包含的内容,ntp 似乎正在运行。我记得读到如果时间不同步并且重新启动应用程序可以解决该问题可能是问题,但这不应该是问题,因为我们将它托管在 ec2
-
@makhan 他们刚刚向雾提交了拉取请求来解决这个问题
标签: ruby-on-rails amazon-web-services carrierwave fog