首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RoR,Fog:从雾开始

RoR,Fog:从雾开始
EN

Stack Overflow用户
提问于 2015-01-28 22:36:16
回答 1查看 336关注 0票数 0

我刚刚安装了创业板asset_sync,我正在尝试设置我的AWS帐户。当我运行bundle exec rake assets:precompile时,我会得到以下错误:

代码语言:javascript
复制
AssetSync::Config::Invalid: Fog provider can't be blank, Fog directory can't be blank

我理解我得到此错误的简单原因,即我没有将Fog提供程序或目录推送到heroku。让我困惑的是将下面的代码放在哪里(摘自Fog自述)。在config/initializers/fog.rb?除了安装gem之外,这就是我开始使用fog所需要做的全部工作吗?

代码语言:javascript
复制
require 'rubygems'
require 'fog'

# create a connection
connection = Fog::Storage.new({
  :provider                 => 'AWS',
  :aws_access_key_id        => YOUR_AWS_ACCESS_KEY_ID,
  :aws_secret_access_key    => YOUR_AWS_SECRET_ACCESS_KEY
})

# First, a place to contain the glorious details
directory = connection.directories.create(
  :key    => "fog-demo-#{Time.now.to_i}", # globally unique name
  :public => true
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-29 15:20:28

没有问题,起步往往是最难的部分。

答案是,这取决于。实际上,我冒昧地说,最好将其放在基于环境的初始化器中,例如config/init/development或config/init/production等。与此相关的是,您可能不希望每次启动应用程序时都生成一个新目录(我相信帐户级别限制为100 )。因此,您可能希望为创建的每个环境设置一个键,或者简单地在初始化器之外的某个位置创建目录(在初始化器中,您可以假设它存在)。

如果您想直接使用该目录,仍然需要创建一个引用,但是您可以创建一个本地引用,而无需使用#new调用,如下所示:

directory = connection.directories.new(:key => ...)

至于asset_sync,它需要这些键和对目录键的引用,您可能希望通过ENV提供目录键(以避免将凭据签入版本控制中)。您可以在这里找到关于哪些键以及如何设置它们的详细信息:sync#built-in-initializer-environment-variables (自述文件还描述了如何通过初始化器来完成该操作,但这可能不是最好的计划)。

希望这能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28203776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档