ruby-on-rails - 无法识别 rails 中 S3.yml 中的 ENV 变量

标签 ruby-on-rails ruby-on-rails-3 yaml

我目前正在尝试使用最新的 aws-sdk 配置 Paperclip建议 gem 。

在我的 S3.yml 文件中,我有这样的东西

development:
  bucket: newmeeter-dev
  access_key_id: ENV['S3_KEY']
  secret_access_key: ENV['S3_SECRET']

但它无法识别 ENV 变量。我收到以下错误
AWS::S3::Errors::InvalidAccessKeyId in PhotosController#create

The AWS Access Key Id you provided does not exist in our records.

如果我尝试将 access 和 secret 直接放入文件中,它就可以完美运行。同时,我尝试将两个 ENV 变量打印到 View 或控制台中,我可以看到它们的值。

我不明白为什么它不能识别它。

最佳答案

解决了!

我在这里找到了对这个问题的答复
Ruby on Rails: Can you put Ruby code in a YAML config file?

解决方案:YAML 文件理解 ERB 格式的代码。

在内部打印 ENV 变量 <%=%>作品。

access_key_id: <%= ENV['S3_KEY'] %>
secret_access_key: <%= ENV['S3_SECRET'] %>

关于ruby-on-rails - 无法识别 rails 中 S3.yml 中的 ENV 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366552/

相关文章:

ruby-on-rails - 如何在 rails form_for 标签中添加一个空属性?

ruby-on-rails-3 - 导轨 : How to get the controller & method name of Restfull named routes?

ruby-on-rails - 在 Rails 3 路由中重命名路径助手

azure - 如何从另一个存储库调用二头肌文件?

azure-devops - 自托管代理上的 Azure 管道出现错误 NU1301 : Unable to load the service index for source during dotnet restore

ruby-on-rails - 在安装了bundler -v 2.0.2的Docker上运行的Rails 6…必须将此 bundle 文件使用Bundler 2或更高版本

ruby-on-rails - 我能否安全地访问非 SSL 共享托管上的 Rails 应用程序的 Gmail,而不会使凭据面临风险?

ruby-on-rails - Time.now.beginning_of_week 给出两个不同的值

mysql - 如何让所有艺术家都没有视频和照片?

docker - Kubernetes:管理环境配置