2012-05-12 4 views
3

컴퓨터에서 this post의 Michael에 의해 bigquery 스 니펫을 시도했을 때 "401 Unauthorized"문제가 발생했습니다. ryguyrg에서 제안한 것처럼 컴퓨터 시간을 동기화하고 (지금 "업데이트"를 클릭하면) 코드가 작동하지만 문제가 잠시 후 몇 분 후에 코드를 다시 작성하면 401 오류로 다시 실패합니다. 컴퓨터를 수동으로 동기화해야합니다. 큰 쿼리 요청을 실행할 때마다 거의 항상 컴퓨터 시간을 동기화해야합니다.서비스 계정을 사용하는 Google Bigquery 401 인증되지 않은 오류

저는 컴퓨터가 잘 작동하고 시간이 몇 밀리 초를 초과하지 않아야한다고 확신합니다. .? 서버에 정확하게 문제를 일으키는 그래서 내가 요청하기 전에 코드에서 시간을 동기화하고 뭔가를 시도하거나 더 좋은 방법은 주위가 볼까 아래

은 참조를 위해 401 오류 메시지입니다 :

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized 
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:159) 
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.execute(GoogleJsonResponseException.java:187) 
    at com.google.api.client.googleapis.services.GoogleClient.executeUnparsed(GoogleClient.java:115) 
    at com.google.api.client.http.json.JsonHttpRequest.executeUnparsed(JsonHttpRequest.java:112) 
    at com.google.api.services.bigquery.Bigquery$Jobs$Insert.executeUnparsed(Bigquery.java:1418) 
    at com.google.api.services.bigquery.Bigquery$Jobs$Insert.execute(Bigquery.java:1442) 
    at BigQueryJavaServiceAccount.main(BigQueryJavaServiceAccount.java:83) 

답변

3

내가 먼저 시간이 NTPD를 사용하여 동기화되어 있는지 확인 것이고, 그것이 올바른 시간대로 설정되어 있는지 : http://www.ntp.org/

1

몇 밀리 초는 영향을주지해야한다.

가장 큰 실패는 요청 시간이 미래에있을 경우입니다. Google 서버는 이러한 요청을 가장 확실하게 거부합니다.

NTP를 통한 동기화에 대한 Michael의 제안에 동의합니다.

우리는 또한 약간 더 관대 한 우리의 OAuth 서비스를 만들기로 볼 수 -하지만 보안과 유용성

의 균형을 항상 힘든
관련 문제