Frage

Ich benutze Das BigQuery -Juwel in meinem Projekt. Ich initialisiere es mit Optionen Client_ID, service_email, key, project_id und dataset. Ich habe meine .p12 -Datei von Google, die ich weitergeben möchte, aber ich bin mir nicht sicher, wo die Datei in mein Rails -Projekt gesteckt werden soll. Ich habe versucht, sie in das gleiche Verzeichnis wie meine Konfigurationsdatei zu setzen und den relativen Pfadnamen zu übergeben, aber aber Ich bekomme einen ungültigen Passphrase -Fehler. Speziell, Zeile 10 Wirf einen Fehler, wenn load_key aufgerufen wird:

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

Es wird also klar, dass die Schlüsseldatei nicht richtig geladen wird. Ich bin schrecklich bei Rails Asset Control - wo soll ich meine Key -Datei setzen und welchen Pfad soll ich in meinen Options -Hash weitergeben?

War es hilfreich?

Lösung

Sie können die Schlüsseldatei in das Konfigurationsverzeichnis einfügen und dann Folgendes ausführen:

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

Sie möchten nicht, dass sich der Schlüssel an einem Ort befindet, an dem Ihre Bewerbung der Öffentlichkeit entspricht, so dass die Konfiguration für mich nach einem guten Ort klingt.

Sie können mit dem Block experimentieren, den Sie oben in der Rails -Konsole haben:

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

Mit Blick auf die Google :: Apiclient -Dokumentation, Aha load_key ist veraltet. Sie empfehlen die Verwendung Google::APIClient::KeyUtils stattdessen.

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

Ein kurzer Überblick über die Rails Asset Pipeline siehe hier. (Bitte entschuldigen Sie den Teil dieser URL "für Dummies", es scheint gut zu sein, schnelle Informationen.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top