【发布时间】: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