适用于Rails应用程序中的carrierwave gem的Google Storage存储访问凭据

Sak*_*ham 7 ruby-on-rails-3 carrierwave google-cloud-storage

在我的rails 3应用程序中,我使用的是carrierwave gem(版本0.5.6).我想使用Google Storage为开发人员存储上传的文件.我创建了一个看起来像下面的initalizer:

CarrierWave.configure do |config|
    config.fog_credentials = {
        :provider                         => 'Google',
        :google_storage_access_key_id => 'xxxx',
        :google_storage_secret_access_key => 'yyyy'
    }
    config.fog_directory = 'directory'
end
Run Code Online (Sandbox Code Playgroud)

我正在收到403禁止留言

...<Error><Code>InvalidSecurity</Code><Message>The provided security credentials are not valid.</Message>...
Run Code Online (Sandbox Code Playgroud)

我刚刚使用apis-console启用了我的Google存储空间,我可以使用在线"Google存储管理器"上传文件.对于上述初始化程序文件中的"google_storage_access_key_id",我在"存储访问"页面中为"您"使用"Google存储ID".对于'google_storage_secret_access_key',我使用的是"旧版存储访问密钥".

我不知道该怎么办.有人可以指点我如何调试这个问题?

谢谢,萨克瑟姆

nat*_*vda 10

好吧,我感到精神错乱,但我花了差不多一整天才在Google API控制台中找到正确的密钥.我在新界面中找不到任何信息.

以下是查找访问密钥和密钥的最小步骤

  • 打开旧的API控制台
  • 通过按下按钮启用可互操作的访问(它说:使其成为可互操作访问的默认设置,但是没有按下此按钮,我没有获得"互操作访问"选项卡)
  • 按下按钮将显示两个子菜单Google Cloud Storage:存储访问和互操作访问,单击互操作访问
  • 在那里你会看到访问键(提示:它开头GOOG)
    • 填写google_storage_access_key_id)
  • 按下Show访问键后面的按钮,实际显示相应的秘密
    • 填写 google_storage_secret_access_key

我希望这可以帮助任何人.我发现雾配置键的名称令人困惑,实际上切换了值,我花了很长时间才真正发现Show按钮实际上显示了秘密.卫生署!所以我希望这可以帮助其他一些灵魂.


afe*_*fed 6

听起来您已为您的帐户启用了旧版访问密钥.在Google API控制台中选择Google Storage,然后点击旧版访问权限.

在此处使用该页面的访问密钥:

google_storage_access_key_id =>'xxxx',

在API控制台中,单击show以显示您的密钥.在这里使用该键:

google_storage_secret_access_key =>'yyyy'

请勿使用Google ID进行旧版访问.

希望这可以帮助,

安东尼


Kha*_*oui 5

要在2016年生成开发人员密钥:

访问此页面:https: //console.cloud.google.com/projectselector/storage/settings

  • 创建或选择项目.
  • 选择互操作性.
  • 如果之前未设置互操作性,请单击"启用互操作性访问".
  • 单击"创建新密钥".