【问题标题】:Fog issue using iam profile and fetching urls from aws使用 iam 配置文件和从 aws 获取 url 的雾问题
【发布时间】: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


【解决方案1】:

所以这个link 得到了更新,基本上问题是当下载带有雾的文件时签名令牌被正确刷新,而在签署 S3 URL 时它没有被刷新。

有一个 pull request 在雾上解决这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-12
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2021-12-27
    相关资源
    最近更新 更多