【发布时间】:2018-12-14 19:42:43
【问题描述】:
我正在使用 Active Storage 设置一个新的 rails 5.2 应用程序,并使用 AWS 来托管生产中的图像。
但是,我在读取凭据时遇到问题:
2018-07-06T08:11:52.625415+00:00 app[web.1]: ! Unable to load application: Aws::Sigv4::Errors::MissingCredentialsError: Cannot load `Rails.config.active_storage.service`:
2018-07-06T08:11:52.625432+00:00 app[web.1]: missing credentials, provide credentials with one of the following options:
2018-07-06T08:11:52.625435+00:00 app[web.1]: - :access_key_id and :secret_access_key
2018-07-06T08:11:52.625437+00:00 app[web.1]: - :credentials
2018-07-06T08:11:52.625479+00:00 app[web.1]: - :credentials_provider
这是一个现有的 S3 存储桶,我专门为此应用创建了一个新用户。我对 CORS 等感到满意。
用户设置在 S3FullAccess 组下。
我已经通过$EDITOR="atom --wait" rails credentials:edit在我的应用中编辑了凭据
文件内容:
aws:
access_key_id: [my access key]
secret_access_key: [my secrect key]
# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: [my secret key base]
感谢这是 YAML 格式,我玩过在键上使用一个空格和一个选项卡,但这似乎没有什么区别。
当我保存并关闭文件时,终端会写New credentials encrypted and saved.
我也安装了gem 'aws-sdk-s3', '~>1', require: false。
还有 config/storage.yml
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
root: <%= Rails.root.join("storage") %>
# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
amazon:
service: S3
access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
region: eu-west-2
bucket: [mybucket]
关于我可能做错的任何建议?
【问题讨论】:
-
试试
gem 'aws-sdk', '~> 3',或者只是gem 'aws-sdk' -
这不是宝石。试过
gem 'aws-sdk'。 -
你能分享
config/storage.yml吗? -
@GeorgeClaghorn 添加到帖子
-
不需要整个“aws-sdk”就够了
gem "aws-sdk-s3", require: false
标签: ruby-on-rails amazon-s3 rails-activestorage ruby-on-rails-5.2