Domanda

sto usando La gemma BigQuery nel mio progetto. Lo inizialisco con opzioni client_id, service_email, chiave, progetto_id e set di dati. Ho il mio file .p12 da Google che voglio passare ma non sono sicuro di dove mettere il file nel mio progetto Rails - Ho provato a metterlo nella stessa directory del mio file di configurazione e passando il nome del percorso relativo, ma Sto ricevendo un errore di passphrase non valido. In particolare, riga 10 sta lanciando un errore quando viene chiamato load_key:

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

Quindi chiaramente non sta caricando correttamente il file chiave. Sono terribile nel controllo delle risorse Rails: dove dovrei mettere il mio file key e quale percorso dovrei passare nelle mie opzioni hash?

È stato utile?

Soluzione

È possibile inserire il file di chiave nella directory di configurazione, quindi fare quanto segue:

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

Non vuoi che la chiave sia in una posizione che la tua applicazione servirà al pubblico, quindi la configurazione mi sembra una buona posizione.

Puoi sperimentare il blocco che hai sopra nella console dei binari:

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

Guardando il Google :: Documentazione apiclient, Vedo load_key è deprecato. Consigliano di usare Google::APIClient::KeyUtils invece.

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

Per quanto riguarda una rapida panoramica della pipeline delle risorse Rails, vedi qui. (Per favore perdona la parte "per manichini" di quell'URL, sembra essere buona, informazioni rapide.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top