Question

j'utilise le gemme BigQuery Dans mon projet. Je l'initialise avec les options Client_id, Service_Email, Key, Project_id et DataSet. J'ai mon fichier .p12 sur Google que je veux passer, mais je ne sais pas où mettre le fichier dans mon projet Rails - j'ai essayé de le mettre dans le même répertoire que mon fichier de configuration et de passer le nom du chemin relatif, mais J'obtiens une erreur de phrase de passe non valide. Spécifiquement, ligne 10 Jette une erreur lorsque Load_key est appelé:

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

Il est donc clair qu'il ne charge pas correctement le fichier clé. Je suis terrible à Rails Asset Control - où dois-je mettre mon fichier clé et quel chemin de chemin dois-je passer dans mes options de hachage?

Était-ce utile?

La solution

Vous pouvez placer le fichier de clé dans le répertoire de configuration, puis procéder ce qui suit:

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

Vous ne voulez pas que la clé soit dans un endroit où votre application servira au public, donc la configuration me semble un bon emplacement.

Vous pouvez expérimenter le bloc que vous avez ci-dessus dans la console Rails:

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

En regardant le Google :: Documentation apiclient, Je vois load_key est obsolète. Ils recommandent d'utiliser Google::APIClient::KeyUtils Au lieu.

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

Quant à un aperçu rapide du pipeline des actifs Rails, voir ici. (Veuillez pardonner la partie "For Dummies" de cette URL, cela semble être une bonne information rapide.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top