Ruby on rails 使用iam配置文件和从aws获取URL的Fog问题

Ruby on rails 使用iam配置文件和从aws获取URL的Fog问题,ruby-on-rails,amazon-web-services,carrierwave,fog,Ruby On Rails,Amazon Web Services,Carrierwave,Fog,使用带有AWS实例配置文件的Fog,3天后,我的s3 URL不再工作。我正在获取新的URL,但AWS返回的错误是提供的令牌已过期。重新启动应用程序会使所有内容重新工作,但不会出现AWS以外的错误 我已经读到,切换到密钥应该可以解决我的问题,但我希望保留我的iam配置文件。有人碰到过这个吗 我的Carrierwave配置如下,我使用的是Carrierwave版本0.9.0和Fog 1.28.0 CarrierWave.configure do |config| fog_credentials

使用带有AWS实例配置文件的Fog,3天后,我的s3 URL不再工作。我正在获取新的URL,但AWS返回的错误是提供的令牌已过期。重新启动应用程序会使所有内容重新工作,但不会出现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
所以它得到了更新,基本上问题是,当使用fog下载文件时,签名令牌被正确刷新,而签名S3URL时,签名令牌没有被刷新


有一个在fog上制作的解决方案来解决此问题

您可以向我们展示您的carrierwave配置吗?我一直在使用carrierwave与IAM配置文件,没有任何问题。你使用的是哪个版本的fog and carrierwave?@makhan我更新了这个问题,告诉你没有什么明显的想法。您是否已在此服务器上启动并运行
ntp
?如果问题只在于阅读,那么是否可以选择将文件夹公开可读?@makhan由于文件夹包含的内容,我们无法将文件夹公开,ntp似乎正在运行。我记得读过一篇文章,如果时间不同步,重启应用程序修复了这个问题,那么这可能就是问题所在,但这不应该是问题所在,因为我们正在托管它ec2@makhan他们刚刚向fog提交了拉取请求以解决此问题