我需要在我的仓库中使用S3存储中的两个密钥才能使Travis测试通过。
我使用travis gem来加密我的密钥:
travis encrypt "aws_access_key=MYSUPERSECRETKEY" --add env
travis encrypt "aws_secret_key=MYSUPERSECRETKEY" --add env
得到了travis.yml字符串:
env:
secure: SOMESTUFFuru4irlVd3Hd6c+x2joz6g=
secure: SOMESTUFFuru4gfgfgfgfgfggfgfgfHd6c+x2joz6g=
我将这些密钥添加到了carrierwave.rb:
CarrierWave.configure do |config|
config.fog_credentials = {
provider: "AWS",
aws_access_key_id: Rails.application.secrets.aws_access_key,
aws_secret_access_key: Rails.application.secrets.aws_secret_key,
region: Rails.application.secrets.aws_region
}
config.fog_directory = "busketS3"
end
把它推到Github上。但是我收到了一个错误:
Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)
My secrets.yml:
development:
facebook_key: "***********"
facebook_secret: "***************"
google_key: "***********************"
google_secret: "***********************"
aws_access_key: "***********************"
aws_secret_key: "***********************"
aws_region: "***********************"
test:
secret_key_base: "***********************"
aws_access_key: "***********************"
aws_secret_key: "***********************"
aws_region: "***********************"
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
怎么了?
答案 0 :(得分:2)
我认为secrets.yml
中存在问题:
secret_key_base: "***********************"
aws_access_key: "***********************"
^^^^^^^^^^^^^^
aws_secret_key: "***********************"
^^^^^^^^^^^^^^
aws_region: "***********************"
但根据你的错误,键应该是:
缺少必需的参数:
aws_access_key_id
,aws_secret_access_key
(引发ArgumentError)
不
aws_access_key, aws_secret_access