0

试图让 AWS S3 与使用 Figaro 的 Travis 一起工作时,我完全陷入了困境。

这一切在开发模式下都可以正常工作:

图片.rb

class Picture < ApplicationRecord
  acts_as_list
  belongs_to :imageable, polymorphic: true

  has_attached_file :image,
    :storage    => :s3,
    :bucket     => Figaro.env.s3_bucket,
    :s3_region  => 'eu-west-1',
    :s3_credentials => {
      :access_key_id      => Figaro.env.aws_access_key_id,
      :secret_access_key  => Figaro.env.aws_secret_access_key
    }

  do_not_validate_attachment_file_type :image
end

应用程序.yml

aws_access_key_id: 'xxx'
aws_secret_access_key: 'xxx'
aws_region: 'eu-west-1'

development:
  s3_bucket: 'company-name-dev'

production:
  s3_bucket: 'company-name-prod'

显然 Travis 需要访问这些密钥:

.travis.yml

language: ruby
before_install:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
rvm:
- 2.4.0
bundler_args: "--jobs=2"
script:
- bundle exec rake db:setup
- bundle exec rake spec
cache: bundler
services:
- postgresql
addons:
  postgresql: '9.4'
deploy:
  provider: heroku
  api_key:
    secure: verlongherokukey
  app: imkerij
  on:
    repo: MyGitHub/MyRepoName
  skip_cleanup: true
env:
  matrix:
  - s3_bucket='company-name-dev'
  global:
  - secure: verylongkey
  - secure: anotherverylongkey

我不断在 Travis 中收到 AWS 缺少凭据错误或 Figaro MissingKeys 错误。

Figaro::MissingKeys: Missing required configuration keys: ["aws_access_key_id", "aws_secret_access_key"]

顺便说一句,添加后才发生:

Figaro.require_keys("aws_access_key_id", "aws_secret_access_key")

在此之前,我一直缺少 AWS 凭证或其他东西。

好像钥匙打不通。也不是在使用 ENV 形式将它们写下来时。然后即使在开发中的东西也不再起作用了。

任何帮助当然不胜感激。让我卡了好几天。还有另一种解决方案,只使用我会感激的秘密。

4

1 回答 1

0

我通过进入我的 Travis CI 项目设置解决了这个问题,我可以在其中添加密钥。立即工作。

以各种方式为我的 .yml使用该travis encrypt函数并没有。

于 2017-05-05T07:54:10.757 回答