雾目录不能为空,Aws访问密钥不能为空,Aws秘密访问密钥不能为空

时间:2014-05-05 09:33:51

标签: ruby-on-rails amazon-s3 asset-sync

我使用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

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

1 个答案:

答案 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变量放在我们身上