我在用着 BigQuery Gem 在我的项目中。我使用options client_id,service_email,key,project_id和数据集初始化它。我从Google那里有.p12文件,我想传递,但我不确定将文件放在我的Rails项目中 - 我尝试将其与配置文件放在相同的目录中并传递相对路径名,但是我遇到了无效的密码错误。具体来说, 第10行 在调用LOAD_KEY时,正在丢弃错误:

key = Google::APIClient::PKCS12.load_key(
  opts['key'],
  "notasecret"
)

因此,显然它无法正确加载密钥文件。我在Rails Asset Control中很糟糕 - 我应该在哪里放置钥匙文件?我应该选择哪些路径名?

有帮助吗?

解决方案

您可以将键文件放入配置目录中,然后执行以下操作:

opts['key'] = Rails.root.join('config','nameofkeyfile.p12').to_s

您不希望钥匙位于您的应用程序向公众服务的位置,因此配置对我来说是一个不错的位置。

您可以尝试在轨道控制台上方拥有的块:

# run `rails c` then
keypath = Rails.root.join('config','nameofkeyfile.p12').to_s
key = Google::APIClient::PKCS12.load_key(keypath, "notasecret")

看着 Google :: Apiclient文档, , 我懂了 load_key 被弃用。他们建议使用 Google::APIClient::KeyUtils 反而。

key = Google::APIClient::KeyUtils.load_from_pkcs12(keyfile, "notasecret")

至于对Rails Asset管道的快速概述,请参阅 这里. 。 (请原谅该URL的“假人”一部分,它似乎是好的,快速的信息。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top