3

我使用asset_sync gem 将资产上传到Amazon S3 存储桶。我使用dotenv存储我的密钥和秘密密钥,并使用 capistrano 部署到 Amazon EC2。一切都很好。

但是当我将密钥移动到.bash_profile我的服务器上并添加一个初始化程序时,资产上传失败并出现此错误。

rake aborted!
Fog directory can't be blank, Aws access key can't be blank, Aws secret access key can't be blank

请帮我弄清楚为什么找不到密钥/秘密。

4

1 回答 1

1

基本上意味着你没有为你的 shell 会话设置 ENV 变量。我保证如果您运行rake assets:precompile FOG_DIRECTORY=[your_dir] AWS_ACCESS_KEY_ID=[your_access_key] AWS_SECRET_ACCESS_KEY=[secret_access],您将能够执行该操作

我现在能给出的最好建议是查看 /etc/environment你的虚拟机上的文件。如果您有此文件,您将能够设置系统范围的变量,这些变量在您每次加载应用程序时使用

问题是分配ENVIRONMENT 和 SHELL 变量之间的问题- SHELL vars 仅在特定的 shell 会话中可用,而 ENVIRONMENT vars 在整个系统中可用

我还没有找到如何动态声明特定于 shell 的变量,方法是将所有环境变量放入/etc/environment其中为我们工作

于 2014-05-05T09:51:06.727 回答