【发布时间】:2020-11-12 05:07:01
【问题描述】:
我正在按照以下说明在 Debian 10 服务器(不是 AWS)上试用 Sharetribe 社区版:https://github.com/sharetribe/sharetribe#installation
我被困在第 7 步,出现以下错误:
Aws::Sigv4::Errors::MissingCredentialsError:缺少凭据, 提供具有以下选项之一的凭据:
:access_key_id and :secret_access_key :credentials :credentials_provider
但是,Rails 知道我使用的不是亚马逊而是本地存储,因为我有以下两个设置:
File: config/environments/development.rb
config.active_storage.service = :local
File: config/environments/production.rb
config.active_storage.service = :local
更改这些设置后,我运行了以下命令:
~/sharetribe$ EDITOR=“sub1 --wait” bin/rails credentials:edit
得到下面的输出:
添加 config/master.key 来存储主加密密钥: [已编辑]
将此保存在您的团队可以访问的密码管理器中。如果你失去了 密钥,包括您在内的任何人都无法访问任何用它加密的内容。
创建配置/master.key
忽略 config/master.key 这样它就不会出现在 Git 历史记录中:
附加.gitignore
加密并保存新凭据。
但运行后:
~/sharetribe$ bundle exec rake db:create db:structure:load
我得到了上面的错误。
编辑:这里是 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: <%= APP_CONFIG.aws_access_key_id%>
secret_access_key: <%= APP_CONFIG.aws_secret_access_key %>
region: <%= APP_CONFIG.s3_region %>
bucket: <%= APP_CONFIG.clp_s3_bucket_name %>
upload:
acl: "public-read"
cache_control: 'max-age=3600'
TLDR:我想将 Sharetribe 的数据库存储在它自己的服务器中,但 Rails 一直要求提供 AWS/Amazon 凭据,尽管进行了本地设置
【问题讨论】:
-
你能发布
storage.yml文件的内容吗?具体来说,确保local指令指向Disk。 -
谢谢。刚刚添加了
-
如果我完全注释掉 Amazon 部分,我会收到此错误:缺少 :amazon Active Storage 服务的配置。可用于 [:test, :local] 的配置
标签: mysql ruby-on-rails amazon-web-services aws-sdk-ruby sharetribe