Я использую 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());
}
С уважением, Игнасио
Это звучит так, как будто ваша учетная запись может быть отключена. Вы можете проверить статус выставления счетов на облачной консоли? – jterrace
Статус выставления счетов в порядке. Json API активирован. В документации Google говорится: «Перейдите в Google Developers Console. Выберите проект. На боковой панели слева выберите API и auth. В отображаемом списке API убедитесь, что для статуса API JSON для облачного хранения данных установлено значение ON На боковой панели слева выберите Зарегистрированные приложения. Выберите приложение. Разверните раздел «Ключ браузера» или «Ключ сервера». но опция «зарегистрированных приложений» не появляется. –
Не могли бы вы отправить электронное письмо на адрес [email protected] с вашим идентификатором проекта и именем ведра? – jterrace