Pergunta

estou a usar A jóia BigQuery no meu projeto. Inicializo -o com opções client_id, Service_email, key, Project_id e DataSet. Eu tenho meu arquivo .p12 do Google que quero passar, mas não tenho certeza de onde colocar o arquivo no meu projeto Rails - tentei colocá -lo no mesmo diretório que meu arquivo de configuração e passar o nome do caminho relativo, mas Estou recebendo um erro de senha inválido. Especificamente, linha 10 está lançando um erro quando o load_key está sendo chamado:

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

Portanto, claramente não está carregando o arquivo de chave corretamente. Sou péssimo no Rails Asset Control - onde devo colocar meu arquivo de chaves e qual nome de caminho devo passar no hash das minhas opções?

Foi útil?

Solução

Você pode colocar o keyfile no diretório de configuração e fazer o seguinte:

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

Você não deseja que a chave esteja em um local em que seu aplicativo servirá ao público, portanto, a configuração parece um bom local para mim.

Você pode experimentar o bloco que possui acima no console do Rails:

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

Olhando para o Google :: Documentação Apiclient, Eu vejo load_key é preterido. Eles recomendam usar Google::APIClient::KeyUtils em vez de.

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

Quanto a uma rápida visão geral do pipeline de ativos do Rails, consulte aqui. (Perdoe a parte "For Dummies" desse URL, parece ser boa, informação rápida.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top