문제

사용 중입니다 BigQuery 보석 내 프로젝트에서. 옵션 client_id, service_email, key, project_id 및 dataset로 초기화합니다. Google에서 전달하고 싶은 .p12 파일이 있지만 Rails 프로젝트에 파일을 어디에 두어야하는지 잘 모르겠습니다. 구성 파일과 동일한 디렉토리에 넣고 상대 경로 이름을 전달하려고했지만. 유효하지 않은 암호 오류가 발생합니다. 구체적으로, 10 행 load_key가 호출 될 때 오류를 던지고 있습니다.

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

따라서 키 파일을 올바르게로드하지 않습니다. 나는 Rails Asset Control에서 끔찍합니다 - 키 파일을 어디에 두어야하고 옵션에 어떤 PathName을 전달해야합니까?

도움이 되었습니까?

해결책

KeyFile을 구성 디렉토리에 배치 한 다음 다음을 수행 할 수 있습니다.

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

당신은 열쇠가 당신의 응용 프로그램이 대중에게 제공되는 위치에 있기를 원하지 않으므로 구성은 나에게 좋은 위치처럼 들립니다.

Rails 콘솔에서 위에있는 블록을 실험 할 수 있습니다.

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

보고 Google :: Apiclient 문서, 내가 참조 load_key 더 이상 사용되지 않습니다. 그들은 사용하는 것이 좋습니다 Google::APIClient::KeyUtils 대신에.

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

Rails Asset Pipeline의 빠른 개요는 여기. (그 URL의 "Dummies"부분을 용서 해주세요. 좋은 정보는 좋고 빠른 정보입니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top