7

在我的 rails 3 应用程序中,我使用的是carrierwave gem(0.5.6 版)。我想为开发人员使用 Google Storage 来存储上传的文件。我创建了一个如下所示的初始化程序:

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

我收到 403 禁止消息

...<Error><Code>InvalidSecurity</Code><Message>The provided security credentials are not valid.</Message>...

我刚刚使用 apis-console 启用了我的 Google Storage,我可以使用在线“Google Storage Manager”上传文件。对于上面初始化程序文件中的“google_storage_access_key_id”,我在“存储访问”页面中为“您”使用了“Google 存储 ID”。对于“google_storage_secret_access_key”,我使用的是“旧版存储访问密钥”。

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

谢谢, 萨克沙姆

4

4 回答 4

11

好吧,我感觉自己智障到了极点,但我花了将近一整天的时间才在 Google API 控制台中找到正确的密钥。我在新界面中根本找不到信息。

所以这里是找到你的访问密钥和秘密的最小步骤

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

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

于 2014-06-12T10:11:07.090 回答
6

听起来您已经为您的帐户启用了旧版访问密钥。从 Google API 控制台中选择 Google Storage,然后单击旧访问。

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

google_storage_access_key_id => 'xxxx',

从 API 控制台单击显示以显示您的密钥。在此处使用该密钥:

google_storage_secret_access_key => 'yyyy'

请勿将 Google ID 用于旧版访问。

希望这可以帮助,

安东尼

于 2011-07-20T14:53:19.817 回答
5

要在 2016 年生成开发者密钥:

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

  • 创建或选择一个项目。
  • 选择互操作性。
  • 如果您之前未设置互操作性,请单击启用互操作性访问。
  • 单击创建新密钥。
于 2016-03-27T01:49:00.750 回答
2

Google API 控制台 gui 不是最友好的用户界面,所以这就是我提供详细说明的原因。我在 2013 年 10 月写这篇文章。界面现在已经改变,但 Google API 控制台仍然允许您使用旧版访问。如果您使用的是新的 Google Cloud Console,请查看左下角,您将看到消息“这是 API 访问页面的实验版本。某些功能可能不可用。 ”点击“ API 访问页面”字样" 让您访问旧版访问权限。然后在左侧菜单中选择“谷歌云存储”。在其下方,您将看到另外两个固定子菜单,“ Storage Access ”和“Interoperable Access”。在“" 子菜单页面,如果您还没有启用“互操作访问”,则启用“互操作访问”。然后在“互操作访问”子菜单页面上,您可以获得用于雾配置的存储访问密钥。

于 2013-10-02T19:50:48.803 回答