【问题标题】:ENV variables not being transferred to Paperclip?ENV变量没有被转移到回形针?
【发布时间】:2014-08-03 00:33:53
【问题描述】:

所以,我的 paperclip.rb 文件中有以下代码:

# Paperclip config
  config.paperclip_defaults = {
      :storage => :s3,
      :s3_credentials => {
        :bucket => ENV['S3_BUCKET_NAME'],
        :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
        :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
        :region => 'oregon'
      }
    }

如您所见,我使用 ENV 变量来保护密钥。我还使用 application.yml 文件来实际存储密钥,如下所示:

S3_BUCKET_NAME: "*bucketname"
AWS_ACCESS_KEY_ID: "*keys here*"
AWS_SECRET_ACCESS_KEY: "*keys here*"

但由于某种原因,密钥没有被传输到 Paperclip ENV 变量,并且当我运行涉及回形针和 S3 的迁移时,我遇到了缺少密钥的错误。

我做错了什么?

谢谢!

编辑错误:

AWS::S3::Errors::InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.
/usr/local/rvm/gems/ruby-2.1.1/gems/aws-sdk-1.39.0/lib/aws/core/client.rb:374:in `return_or_raise'
/usr/local/rvm/gems/ruby-2.1.1/gems/aws-sdk-1.39.0/lib/aws/core/client.rb:475:in `client_request'

【问题讨论】:

  • 你能分享你遇到的错误吗?
  • 感谢 Kirti,我添加了错误,我知道这是问题所在,因为当我将密钥直接添加到回形针设置时,它起作用了。所以这是 ENV 变量的问题。
  • 你在生产环境(heroku)中遇到这个问题吗?
  • 嗨,不,因为我正在使用 figaro 在生产中传输密钥。

标签: ruby-on-rails ruby-on-rails-3 heroku ruby-on-rails-4


【解决方案1】:

Heroku 上,您必须通过运行以下命令来设置每个环境变量:

$ heroku config:set key ="value"

例如:

$ heroku config:set S3_BUCKET_NAME ="your_bucket_name"

当您使用figaro gem 时,您会得到一个现成的figaro 命令,您可以使用它一次性从配置文件application.yml 中设置值:

$ figaro heroku:set -e production

要验证设置的变量,请使用以下命令,该命令将列出所有设置的环境变量:

$ heroku config

详情请参阅Heroku: Configuration and Config VarsFigaro on Heroku

更新

在开发环境中,

确保您运行rails generate figaro:install 命令,该命令会创建一个config/application.yml 文件并将其添加到您的.gitignore 文件中。

application.yml中添加配置:

S3_BUCKET_NAME: "your_bucket_name"
AWS_ACCESS_KEY_ID: "your_access_key_id"
AWS_SECRET_ACCESS_KEY: "your_secret_access_key"

确保config.paperclip_defaults 中的键名与application.yml 中指定的键完全匹配 重启服务器以加载配置。

【讨论】:

  • 谢谢 Kirti,我已经在生产环境中工作了。该问题正在开发中。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 2021-07-18
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多