我使用asset_sync gem将资源上传到Amazon S3存储桶。我使用dotenv来存储我的密钥和密钥,并使用capistrano部署到Amazon EC2。一切都很好。
但是,当我将密钥移至我的服务器上的.bash_profile
并添加了initializer时,资产上传因此错误而失败。
rake aborted!
Fog directory can't be blank, Aws access key can't be blank, Aws secret access key can't be blank
请帮我弄清楚为什么找不到钥匙/秘密。
答案 0 :(得分:1)
基本上意味着你没有为shell会话设置ENV变量。我保证如果您运行rake assets:precompile FOG_DIRECTORY=[your_dir] AWS_ACCESS_KEY_ID=[your_access_key] AWS_SECRET_ACCESS_KEY=[secret_access]
,您将能够执行操作
我现在可以给出的最佳建议是查看 您的VM上的
/etc/environment
文件。如果你有这个文件,你会的 能够设置每次都 使用的系统范围变量 你加载你的应用程序
问题是ENVIRONMENT & SHELL variables的分配之间的问题 - SHELL变量仅在特定的shell会话中可用,而环境变量在整个系统中可用
我还没有找到如何动态声明特定于shell的变量,方法是将/etc/environment
中的所有env变量放在我们身上