2014-02-19 2 views
3

Я использую Google Cloud Platform API для Java (google-api-services-storage-v1beta2-rev39-1.17.0-rc).API Google Cloud Platform -> «Клиент OAuth удален». Ошибка

В течение пары месяцев он работал нормально, но теперь я получил следующую ошибку при выполнении операции.

Я не нашел причину появления ошибки. Я проверил, есть ли новая версия API, но последняя версия v1beta2-rev39-1.17.0-rc.

Полный StackTrace

2014-36-19 12:36:11.791 [qtp1800676648-24 - PUT /track_processing/process/39793ae0-f936-4ef1-9629-bd36bc5aa469] ERROR com.xxx.common.cloud_storage.GoogleCloudStorageService - Error without Json body.com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request{ 
    "error" : "invalid_client", 
    "error_description" : "The OAuth client was deleted."} 
    at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.auth.oauth2.Credential.executeRefreshToken(Credential.java:570) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequestWithoutGZip(MediaHttpUploader.java:545) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequest(MediaHttpUploader.java:562) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.media.MediaHttpUploader.executeUploadInitiation(MediaHttpUploader.java:519) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.media.MediaHttpUploader.resumableUpload(MediaHttpUploader.java:384) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:336) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:418) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) ~[track_processing.jar:0.0.1-SNAPSHOT] 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) ~[track_processing.jar:0.0.1-SNAPSHOT] 

Это исполняемый код

public URL upload(final InputStream mediaStream, long mediaStreamSize, final String filename) throws IOException { 
     InputStreamContent mediaContent = new InputStreamContent(MediaType.APPLICATION_OCTET_STREAM, mediaStream); 
     if (mediaStreamSize > 0) 
      mediaContent.setLength(mediaStreamSize); // Only an estimate, but allows google to optimize the upload 

     StorageObject objectMetadata = new StorageObject().setName(filename) 
       .setAcl(Lists.newArrayList(new ObjectAccessControl().setEntity("allUsers").setRole("READER"))) 
       .setContentDisposition("attachment"); 

     Storage.Objects.Insert insertObject = client.objects() 
                .insert(storageConfiguration.getBucketName(), 
                  objectMetadata, 
                  mediaContent); 

     insertObject.getMediaHttpUploader() 
        .setProgressListener(new UploadProgressListener(mediaStreamSize > 0)) 
        .setDisableGZipContent(true); 

     if (mediaContent.getLength() > 0 && mediaContent.getLength() <= 2 * 1000 * 1000) { 
      logger.info("{} is a small file (<2mb)", filename); 
      insertObject.getMediaHttpUploader().setDirectUploadEnabled(true); 
     } 

     return new URL(insertObject.execute().getSelfLink()); 
    } 

С уважением, Игнасио

+1

Это звучит так, как будто ваша учетная запись может быть отключена. Вы можете проверить статус выставления счетов на облачной консоли? – jterrace

+1

Статус выставления счетов в порядке. Json API активирован. В документации Google говорится: «Перейдите в Google Developers Console. Выберите проект. На боковой панели слева выберите API и auth. В отображаемом списке API убедитесь, что для статуса API JSON для облачного хранения данных установлено значение ON На боковой панели слева выберите Зарегистрированные приложения. Выберите приложение. Разверните раздел «Ключ браузера» или «Ключ сервера». но опция «зарегистрированных приложений» не появляется. –

+1

Не могли бы вы отправить электронное письмо на адрес [email protected] с вашим идентификатором проекта и именем ведра? – jterrace

ответ

1

Этот вопрос, кажется, были решены за пределами нормального потока для переполнения стека вопрос. Я не уверен, что его нужно удалить или просто ответить на него в соответствии с тем, что такое соглашение. Подумайте, что это ответ метокмаркета, чтобы не допустить, чтобы эта проблема разрешилась.

Смежные вопросы