Pregunta

Estoy usando la gema de BigQuery en mi proyecto. Lo inicializo con Opciones Client_ID, Service_Email, Key, Project_ID y DataSet. Tengo mi archivo .p12 de Google en el que quiero pasar, pero no estoy seguro de dónde poner el archivo en mi proyecto Rails: intenté ponerlo en el mismo directorio que mi archivo de configuración y pasar el nombre de ruta relativa, pero Recibo un error de frase de pases inválido. Específicamente, línea 10 está lanzando un error cuando se llama a load_key:

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

Por lo tanto, claramente no está cargando el archivo de clave correctamente. Soy terrible con el control de activos de Rails: ¿dónde debo poner mi archivo de teclas y qué nombre de ruta debo pasar en mis opciones hash?

¿Fue útil?

Solución

Puede colocar el archivo de teclas en el directorio de configuración, luego hacer lo siguiente:

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

No desea que la clave esté en una ubicación en la que su aplicación servirá al público, por lo que la configuración me parece una buena ubicación.

Puede experimentar con el bloque que tiene arriba en la consola Rails:

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

Mirando a la Google :: documentación apiclient, Ya veo load_key es obsoleto. Recomendan usar Google::APIClient::KeyUtils en cambio.

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

En cuanto a una descripción general rápida de la tubería de activos de Rails, ver aquí. (Disculpe la parte "para muñecas" de esa url, parece ser buena información rápida).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top